有一个数组在一段时间内单调递增,然后逐渐减少,再次增加......等[1,2,3,4,5,3,1,-1,-3,2,5,67,90,8,7,3,0]
。排序这个数组的最佳方法是什么? Stackoverflow中的一些相关问题建议K-Way Merge Sort
,但没有提供实现细节。
那么排序它的理想方式是什么?任何光滑的方法是否会提供比O(N*log N)
给出的好的quicksort
更好的性能,以便值得使用?如果K-Way Merge Sort
是要做的事情,请提供一些实施细节,我在互联网上找不到一个!
答案 0 :(得分:1)
你想要Timsort,它利用自然运行。
答案 1 :(得分:1)
我认为与预处理的自然合并将在O(n)中进行。