정렬 알고리즘(Sort Algorithm)

정렬 알고리즘

입력 : N개의 데이터
출력 : 정렬된 N개의 데이터

정렬 알고리즘의 중요요소
안정성(stability) - 같은 원소가 있을 때 원래 원소의 순서가 유지되는지 여부.
예를 들어 3, 2, 4, 2, 5를 정렬할 때를 생각해보자. 편의를 위해 원래 위치에 번호를 매겨보면,

3
2
4
2
5
1
2
3
4
5

이 된다.

만약 특정한 정렬 알고리즘이 안정성이 있는 정렬 알고리즘일 경우에는
2
2
3
4
5
2
4
3
1
5
이 될 것이고,

만약 안정성이 없는 정렬 알고리즘일 경우에는

2
2
3
4
5
2
4
3
1
5

2
2
3
4
5
4
2
3
1
5
두 경우중 하나가 될 것이다. (즉 순서가 유지되는지 보장이 안됨.)


정렬 알고리즘시간복잡도안정성
선택 정렬(Selection Sort) O(N^2) X
거품 정렬(Bubble Sort) O(N^2) O
삽입 정렬(Insert Sort) O(N^2) O
셸 정렬(Shell Sort) O(N^2) X
합병 정렬(Merge Sort) O(NlogN) O
힙 정렬(Heap Sort) O(NlogN) O
퀵 정렬(Quick Sort) O(N^2)*1 X
기수 정렬(Radix Sort) O(N) O


댓글 없음:

댓글 쓰기