在排序已经几乎排序的数组时,哪种排序算法最适合使用?
答案 0 :(得分:2)
插入排序适用于几乎排序的数据。您接近最佳结果。
这是一个很棒的动画,可以显示排序的效果:http://www.sorting-algorithms.com/insertion-sort
答案 1 :(得分:1)
这取决于。阵列的大小?什么"已经几乎排序"意味着 - 因为数据的百分比已按顺序排列?什么是您的编程和数据存储环境 - 内存中的数据,数据库,文件?
话虽如此,你可以从研究Timsort开始。这是一种相对较新的排序算法,可以处理大型数据集,利用"运行" (数据已按排序顺序排列)。
答案 2 :(得分:0)
如果你定义"几乎排序"由于具有较少数量的数据点,这些数据点的顺序相反而不是正确的顺序(例如,想象一下排序列表,然后采用不相交的连续数据点对并将它们反转),那么冒泡排序将非常有效你做了一个修改,如果你交换两个元素,那么你继续搜索左边并交换,只要相邻元素乱序。如果无序对的数量是O(n),则这将具有复杂度O(n)。