2. 셸 정렬 알고리즘이란
일정한 구간을 쪼개고 해당 구간 안에서 데이터를 정렬하고
구간을 점점 작게 쪼개 나가면서 정렬하는 알고리즘이다.
3. 셸 정렬 알고리즘이란
일정한 구간을 쪼개고 해당 구간 안에서 데이터를 정렬하고
구간을 점점 작게 쪼개 나가면서 정렬하는 알고리즘이다.
100 68 25 1 15 72
Buf[0] Buf[1] Buf[2] Buf[40] Buf[41] Buf[42]
구간 = 40
4 26 88
Buf[97] Buf[98] Buf[99]
4. 셸 정렬 알고리즘이란
일정한 구간을 쪼개고 해당 구간 안에서 데이터를 정렬하고
구간을 점점 작게 쪼개 나가면서 정렬하는 알고리즘이다.
1 15 72 7 61 55
Buf[0] Buf[1] Buf[2] Buf[20] Buf[21] Buf[22]
구간 = 20
4 26 88
Buf[97] Buf[98] Buf[99]
5. 셸 정렬 알고리즘의 시간복잡도는 O(𝑁(𝐿𝑜𝑔𝑁)2
) 이다.
그룹 단위로 나누어 정렬하기 때문에
데이터의 비교 횟수와 이동 횟수가 현저하게 줄어들고
이 점이 속도를 빠르게 만드는 이유가 된다.
다른 알고리즘(선택,삽입,버블정렬)과 비교했을때
데이터가 정렬된 형태에 따른 성능 차이는 거의 없다.