排序算法最适合排序几乎排序的数组

时间:2015-05-05 17:09:59

标签: algorithm sorting

在排序已经几乎排序的数组时,哪种排序算法最适合使用?

3 个答案:

答案 0 :(得分:2)

插入排序适用于几乎排序的数据。您接近最佳结果。

这是一个很棒的动画,可以显示排序的效果:http://www.sorting-algorithms.com/insertion-sort

答案 1 :(得分:1)

这取决于。阵列的大小?什么"已经几乎排序"意味着 - 因为数据的百分比已按顺序排列?什么是您的编程和数据存储环境 - 内存中的数据,数据库,文件?

话虽如此,你可以从研究Timsort开始。这是一种相对较新的排序算法,可以处理大型数据集,利用"运行" (数据已按排序顺序排列)。

答案 2 :(得分:0)

如果你定义"几乎排序"由于具有较少数量的数据点,这些数据点的顺序相反而不是正确的顺序(例如,想象一下排序列表,然后采用不相交的连续数据点对并将它们反转),那么冒泡排序将非常有效你做了一个修改,如果你交换两个元素,那么你继续搜索左边并交换,只要相邻元素乱序。如果无序对的数量是O(n),则这将具有复杂度O(n)。