是否有可用于运行数据集的算法,应用比较因子,并返回有关数据集与排序顺序的接近程度的报告?我更喜欢Delphi / Pascal,但如果示例不是过于复杂,我可以阅读其他语言.
Introsort非常令人兴奋,因为它完全避免了quicksort的二次最坏情况.而不是你的自然问题,“我如何检测到数据几乎已经排序”,它实际上是在问自己是否正在进行,“这需要花费太长时间吗?”.如果答案是肯定的,它会从快速排序切换到排序.
Timsort将合并排序与插入排序相结合,并且对排序或反向排序的数据以及包含排序或反向排序的子集的数据执行得非常好.
所以可能你的问题的答案是,“你不需要预先通过分析,你需要一个自适应排序算法”.