asongGocommitpdqsortGo
commitpqdsort
pdqsortpdqsort
pdqsortC++RUSTC++introsort
pdqsorthttps://github.com/zhangyunhao116/pdqsort
  • 短序列情况:对于长度在 [0, MAX_INSERTION] 的输入,使用 insertion sort (插入排序)来进行排序后直接返回,这里的 MAX_INSERTION 我们在 Go 语言下的性能测试,选定为 24。
  • 最坏情况,如果发现改进的 quicksort 效果不佳(limit == 0),则后续排序都使用 heap sort 来保证最坏情况时间复杂度为 O(n*logn)。
  • 正常情况,对于其他输入,使用改进的 quicksort 来排序
pdqsort

运行结果:

对于此次排序算法优化你们有什么想法?快快上手体验一下吧~。

参考链接:

好啦,本文到这里就结束了,我是asong,我们下期见。

欢迎关注公众号:Golang梦工厂