如果有一个图书馆所有书籍已经排序,除了只有一本书没有存储在它应该是的地方。我应该使用哪种算法以最短的时间对这个库进行排序?目前我认为它将与O(nlogn)合并排序。任何比这更快的算法?什么是最好的算法来排序在图书馆几乎排序的书籍
0
A
回答
2
- 找到图书(索引
i
)的位置 - 线性扫描 j>i
一个地方筛所有的书与指数权- 将书籍在新的自由空间
这是在O(n)中完成的,数据只有2次通过,并且可以通过将步骤(1)和(2)组合在一起完成而优化为仅在一次通过中完成。
还要注意:
这基本上是做归并两个阵列,(但是具有O(1)额外的空间,该变型):
- 原件(排序阵列)
- 新书(也是大小为1的排序阵列)
由于array(1) - Original已经排序,所以可以跳过rec ursive调用它,然后直接进入mergesort的合并步骤。
1
如果您确定它几乎已排序,那么插入算法甚至泡泡将是最好的......实际上,合并不会是最好的,因为它会进行太多的订单检查。
看看this gif,它可能会帮助你:)
相关问题
- 1. 特殊算法,图书馆和书籍
- 2. 书籍排序程序
- 3. 图书馆应用程序。在编辑书籍方法
- 4. 什么是图书馆?
- 5. 什么是最好的图书馆与档案工作
- 6. 这种情况下最好的排序算法是什么?
- 7. 什么是最好的预留座位排序算法?
- 8. 什么是最快的快速排序 - 排序算法的排名表?
- 9. 更好的排序技术几乎排序的列表
- 10. 您将使用什么排序算法对大型,几乎排序的列表进行排序
- 11. 频繁项集最好的算法和图书馆
- 12. 什么是一个好的图书馆画在c + +的屏幕?
- 13. 还有什么好的iOS 5书籍?
- 14. 什么是HTML,CSS,PHP,Javascript等最好的书籍
- 15. Dart的国际图书馆是什么?
- 16. WCF图书馆应用程序的出发点是什么?
- 17. 这是什么样的排序算法?
- 18. 哪种排序算法最适合重新排序几乎完全排序的列表?
- 19. 排序SQL书签
- 20. 在scala中反向排序的最好方法是什么?
- 21. 在python中反向排序的最好方法是什么?
- 22. 好的网站和/或书籍来学习游戏算法?
- 23. 图书馆对图书馆的引用
- 24. 在图书馆数据库中标记书籍
- 25. 递增值,如果书籍在图书馆管理系统
- 26. 排序部分排序列表的最佳方法是什么?
- 27. 什么是MVC期货图书馆?
- 28. 什么是混淆图书馆?
- 29. 为什么快速排序被认为是最快的排序算法?
- 30. 你最喜欢的Ruby on Rails书籍是什么?为什么?