• 셸 정렬


삽입 정렬의 장점을 활용하는 정렬 알고리즘

(삽입 정렬은 어느정도 정렬된 배열에서 최적의 성능을 냄)


데이더들을 일정 간격으로 그룹화 하고, 각 그룹에서 같은 자리의 데이터 끼리 삽입정렬(ex.각 그룹의 첫번째 자리 끼리)


그룹의 간격을 점점 줄여나감


최종적으론 어느정도 정렬된 상태에서 삽입 정렬을 하게됨















'알고리즘 > 정렬 알고리즘' 카테고리의 다른 글

기수 정렬(Radix Sort)  (0) 2017.02.02
퀵 정렬(Quick Sort)  (0) 2017.02.01
버블 정렬(Bubble Sort)  (0) 2017.01.25
삽입 정렬(Insertion Sort)  (0) 2017.01.25
선택 정렬(Selection Sort)  (0) 2017.01.25





  • 버블 정렬(오른차순 기준)


인접한 두 데이터를 비교 => 뒤의 데이터가 더 작으면 자리 변경


구현이 가장 간단하고, 코드가 매우 직관적이다.


성능은 매우 비효율적인 정렬







첫번째 사이클 종료


한 사이클이 완료되면, 가장 큰 데이터가 가장 뒤에 위치하게 된다.



데이터의 수 만큼 사이클 반복 수행




'알고리즘 > 정렬 알고리즘' 카테고리의 다른 글

기수 정렬(Radix Sort)  (0) 2017.02.02
퀵 정렬(Quick Sort)  (0) 2017.02.01
셸 정렬(Shell Sort)  (1) 2017.01.25
삽입 정렬(Insertion Sort)  (0) 2017.01.25
선택 정렬(Selection Sort)  (0) 2017.01.25



  • 삽입 정렬(오름차순 기준)




-어느정도 정렬 되어 있는 상태에서 좋은 효율을 보여주는 정렬


-자신의 데이터와 앞자리 데이터를 비교해, 자신이 더 작으면 자리변경(앞자리 > 자신)


-자기보다 작은 데이터가 나오면 반복 종료


-다음 사이클로 넘어갈때, 한칸씩 뒤에 있는 데이터 부터 시작






















이런 방식으로 마지막 자리 까지, 계속 반복







'알고리즘 > 정렬 알고리즘' 카테고리의 다른 글

기수 정렬(Radix Sort)  (0) 2017.02.02
퀵 정렬(Quick Sort)  (0) 2017.02.01
셸 정렬(Shell Sort)  (1) 2017.01.25
버블 정렬(Bubble Sort)  (0) 2017.01.25
선택 정렬(Selection Sort)  (0) 2017.01.25

+ Recent posts