본문 바로가기

Today I Learned

21/09/18

모두를 위한 컴퓨터 과학 (CS50 2019) - 알고리즘

 

 

 

3) 선형 검색

선형 검색 : 원하는 자료를 찾을 때까지 처음부터 마지막 자료까지 차례대로 검색

 

  • 반환 값의 관습적인 의미
0 성공
1 실패

 

💬 어떤 정적인 정보. 예를 들어 도서관 회원관리에 필요한 회원 정보. 이름, 회원번호가 들어가 있을 것이다. 

 

 

 

4) 버블 정렬

버블 검색 : 정렬 알고리즘 중 하나. 두 개의 인접한 자료를 비교하면서 위치를 교환하는 방식의 정렬

 

💬 n값이 크거나 이미 정렬되어 있는 자료를 정렬할 때 비효율적이다. 반대로 n값이 작거나 정렬되지 않은 자료를 정렬할 때 효율적이다.

 

 

 

5) 선택 정렬

선택 정렬 : 자료들 중에서 가장 작은 자료를 찾아 첫번째 위치의 수와 교환해주는 정렬

 

💬 선택 정렬을 효율적으로 바꾸기 위한 방법은 생각이 나지 않는다.

댓글에 최솟값과 최댓값을 동시에 정렬하자고 하는데, 최고차항이 n^2가 되는 것은 똑같지 않은가?

 

 

 

6) 정렬 알고리즘의 실행시간

 

Comparison Sorting Visualization

 

www.cs.usfca.edu

 

버블 정렬의 최상의 경우의 의사 코드 ☞ 하한은 Ω(n)

Repeat until no swaps

    For i from 0 to n–2

        If i'th and i+1'th elements out of order

            Swap them

 

선택 정렬의 의사 코드

For i from 0 to n–1
    Find smallest item between i'th item and last item
   
    Swap smallest item with i'th item

 

💬 선택 정렬은 교환이 일어나지 않을 때까지만 코드가 수행되도록 할 수가 없다.

정렬이 다 되어 있는 자료라고 하더라도 코드를 중단시킬 수가 없다. 그래서 버블 정렬처럼 시간을 단축시킬 수가 없다.

 

'Today I Learned' 카테고리의 다른 글

21/09/20  (0) 2021.09.20
21/09/19  (0) 2021.09.19
21/09/16  (0) 2021.09.16
21/09/14  (0) 2021.09.14
21/09/12  (0) 2021.09.13