当对已经排序的数组进行排序时,哪种排序算法最适合使用?排序算法最适合对排序数组进行排序
回答
插入排序适用于几乎排序的数据。您接近最佳结果。
这里是一个伟大的动画,显示的排序将如何执行:http://www.sorting-algorithms.com/insertion-sort
这要看情况。数组的大小? “已经几乎排序”是什么意思 - 就像数据的百分比已经按顺序排列了一样?你的编程和数据存储环境是什么 - 内存中的数据,数据库,文件?说了这么多,你可以从研究Timsort开始。这是一种相对较新的排序算法,它将处理大型数据集,利用“运行”(数据已按排序顺序排列)。
是的,已经几乎按照已经按顺序排列的数据的百分比排序 – Shauna
如果您将“几乎排序”定义为具有相反数量的数据点对,而不是正确的顺序(例如,想象一下采取排序列表,然后采用不相交的连续数据点对并倒转他们),那么一个气泡排序将工作得非常好,你做了一个修改,如果你交换两个元素,那么你继续向左搜索并交换,只要相邻元素失序。如果不成对的数量是O(n),则这将具有复杂度O(n)。
这是真的,但在这种情况下插入排序仍然比泡泡更好。它做了一个类似的排序步骤较少。 – StilesCrisis
- 1. 排序d排序数组的算法
- 2. Java使用合并排序对数组进行排序
- 3. 使用合并对数组进行排序索引排序
- 4. 对数组进行排序
- 5. 对数组进行排序
- 6. 按升序对数组进行排序
- 7. 按降序对数组进行排序
- 8. 按降序对数组进行排序
- 9. 在Ruby中对组合进行排序
- 10. 为一个已排序阵列的运行时间由选择排序算法进行排序Vs的时间为反转排序的数组进行排序
- 11. 对数组或数组进行排序?
- 12. 合并排序不排序数组
- 13. 最有效的方法来排序2d数组排序到1d排序数组
- 14. 使用堆排序对数组进行排序
- 15. 使用闭包对未排序数组进行排序
- 16. 在javascript对象数组中进行排序和排序
- 17. PHP排序多维数组,只能对一列进行排序
- 18. 使用GET变量对数组进行排序..没有排序
- 19. 使用多个排序标准对数组进行排序(QuickSort)
- 20. 3对已排序的数组进行排序。 O(NlogN)实现
- 21. 顺序进行排序组
- 22. 数组排序 - 和合并 - 算法
- 23. 无法使用排序对数据进行排序
- 24. 当对一个排序列表进行排序时,输出集合不排序
- 25. 排序数组排序
- 26. 排序数组没有排序()方法
- 27. 哪种排序算法最适合重新排序几乎完全排序的列表?
- 28. 使用合并排序对n个字符串进行排序
- 29. 如何让我的快速排序算法按升序和降序对数组进行排序?
- 30. 如何使用数组顺序对此集合进行排序?
定义“几乎排序”?对于人来说,“几乎分类”的东西可能与机器非常不同。 –