Shell-Sort
希尔排序...
希尔排序
- 希尔排序:预先定义一系列间隔(增量序列)DK,按照间隔,进行间隔排序
DK[i-1]
有序后,执行DK[i]
的排序后,DK[i-1]
依旧是有序的
1、原始的希尔排序
DK[i-1] = 取整(N/2),DK[i] = 取整(DK[i-1]/2)
1 | void Shell_sort(ElementTypes A[], int N) |
- 复杂度分析:
当所有大于的增量的序列的数据都是有序的时候,所有的交换操作都会在增量为1的时候执行,这回导致一个不怎么好的结果,时间复杂度会达到
O(N^2)
。