Shell排序的时间复杂度

来源:3-5 快速排序法 - Quick Sort

P番薯oTATo

2019-12-31

老师,快排和归并排序的结果都没什么问题,但我用Shell排序测试了100w的数据量,发现竟然还保持在和快排以及归并排序的水准。
Test with random array, size = 1000000, randome range [0, 1000000]
Merge Sort: 0.116 S
Merge Sort EX: 0.114 S
Merge Sort BU: 0.114 S
Quick Sort: 0.081 S
Shell Sort: 0.106 S

写回答

1回答

liuyubobobo

2019-12-31

是的哦,希尔排序就是这么快哦。


从复杂度的角度,希尔排序可以近乎看作是 O(nsqrt(n)) 级别的排序(不够精准,但绝不是 O(n^2),从复杂度的角度,比 O(nlogn) 高一些)。


但是从具体代码实现上,由于没有递归调用,所以,实际性能会很快:)


继续加油!:)

0
0

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程