Mafa Dev

여러 정렬 알고리즘 평균 속도 , 최악의 상황 속도 , 메모리 본문

algorithm/study

여러 정렬 알고리즘 평균 속도 , 최악의 상황 속도 , 메모리

마파_ 2013. 2. 20. 01:59

 Name

평균

최악의 상황

 Memory

Stable 

 Method

Bubble sort 

 ㅡ

 O(n^2)

 O(1)

 Yes

 Exchanging

 Cocktail sort

 ㅡ

 O(n^2)

 O(1)

 Yes

 Exchanging

 Comb sort

O(n log n)

 O(n log n)

 O(1)

 No

 Exchanging

 Gnome sort

 ㅡ

 O(n^2)

 O(1)

 Yes

 Exchanging

 Selection sort

 O(n^2)

 O(n^2)

 O(1)

 No

 Selection

 Insertion sort

 O(n + d)

 O(n^2)

 O(1)

 Yes

 Insertion

 Shell sort

 ㅡ

O(n log2 n) 

 O(1)

 No

 Insertion

 Binary tree sort

 O(n log n)

 O(n log n)

 O(n)

 Yes

 Insertion

 Library sort

 O(n log n)

 O(n^2)

 O(n)

 Yes

 Insertion

 Merge sort

O(n log n)

 O(n log n)

 O(n)

 Yes

 Merging

 In-place merge sort

 O(n log n)

 O(n log n)

 O(1)

 Yes

 Merging

 Heapsort

 O(n log n)

 O(n log n)

 O(1)

 No

 Selection

 Smoothsort

 ㅡ

 O(n log n)

 O(1)

 No

 Selection

 Quicksort

 O(n log n)

 O(n^2)

 O(log n)

 No

 Partitioning

 Introsort

 O(n log n)

 O(n log n)

 O(log n)

 No

 Hybrid

 Patience sorting

 ㅡ

 O(n^2)

 O(n)

 No

 Insertion

 Strand sort

 O(n log n)

 O(n^2)

 O(n)

 Yes

 Selection

 

역시 뭐니뭐니 해도 가장 빠르고 보편화 되있는 알고리즘은 Quicksort(퀵 정렬) 입니다. 54321 처럼 내림차순이 되어있는 배열이라면 말이 달라지지만 그래도 가장 빠른 알고리즘은 퀵정렬 입니다. 빠른 프로그램을 제작 하기 위해서는 퀵정렬을 사용 하시면 됩니다.