Processing math: 100%
본문 바로가기

[알고리듬] 2주차: 정렬

Selection sort

n개 수 중 최소값을 찾는다

② 그 수를 맨 앞으로 이동

③ 그 수 다음부터 n1개 수에 대해 위 작업 반복

 

-> i번째 반복에서 앞의 1 ~ (i1)번째까지는 정렬이 되어 있음

 

시간복잡도: O(n2)

 

 

 

 

Insertion sort

n개의 수 중 i번째 수를 꺼냄

1 ~ i1번째 중 올바른 위치에 삽입

i=2부터 n에 대해 위 작업을 반복

 

-> i번째 반복에서 앞의 1 ~ i1번째까지는 정렬이 되어 있음

 

시간복잡도: O(n2)

 

*Best case: Θ(n)

 

 

 

Bubble sort

이웃한 수끼리 교환으로 정렬

 

 

 

 

Merge sort and Quick sort

Divide and conquer

Merge sort

n개의 수를 절반으로 나눈다 (n2개씩)

n2개의 수 각각을 정렬한다

③ 정렬된 걸 합친다

 

시간복잡도: O(nlogn)

 

 

Quick sort

최악의 경우 O(n2), 평균적인 경우 O(n\log{n})

대체로 빠름