-1
A
回答
0
分而治之贡献了log(n)因子。您将数组分成半个log(n)次,每次执行时,对于每个段,必须在两个已排序的数组上进行合并。合并两个排序的数组是O(n)。该算法只是走上两个阵列,然后走上滞后的那个阵列。
+0
谢谢!我的无论如何,它都会分而治之。我不知道我会得到多少(如果有的话)分。 – juice 2013-05-10 05:24:10
0
你得到的递归是r(n)= O(n)+ r(roundup(n/2))+ r(舍入(n/2)。 问题是你不能使用Masters Theorem解决这个问题的原因是因为四舍五入,所以你可以用数学方法或者使用一些类似黑客的解决方案,如果你的输入不是两个数的幂只是“吹起来”,那么你就可以使用r上的主定理(n)= O(n)+ 2r(n/2)。显然这导致O(nlogn)。函数merge()本身在O(n)中,因为在最坏的情况下你需要n-1个比较。
相关问题
- 1. 我们可以做快速排序与n logn最坏情况的复杂性?
- 2. 什么是合并的关键比较的最坏情况数量?
- 3. 为什么合并排序最差情况运行时间O(n log n)?
- 4. 特殊情况下插入排序的最坏情况比较
- 5. Redis:它是否仍然O(logN)从排序集中获得最高分?
- 6. 为什么合并排序被认为是最好的
- 7. 在合并排序算法的分析中,'6n'(6n(logn + 1)= 6nlogn + 6n)是什么?
- 8. 快速排序最糟糕的情况是什么?
- 9. 这种情况下最好的排序算法是什么?
- 10. KMP字符串搜索算法的最坏情况是什么?
- 11. 斯坦因算法的最坏情况输入是什么?
- 12. 什么是随机搜索的最坏情况
- 13. 当epmd端口打开时最坏的情况是什么?
- 14. 最坏的情况会是什么时间复杂度?
- 15. 什么是最坏的情况大哦使用list.retainAll
- 16. A *搜索算法的最坏情况是什么?
- 17. QuickHull最坏情况
- 18. 冒泡排序最坏的情况下,最好的情况下和平均情况下的复杂性
- 19. 有人可以向我解释为什么插入排序的最坏情况是O(n^2)?
- 20. 为什么在合并排序中合并操作是O(n)?
- 21. 为什么插入排序的最佳情况是O(n)&not O(n^2)?
- 22. 最坏情况下运行时间为O,Ω为最佳情况,但为什么有时在最坏情况下使用Ω?
- 23. 最坏的情况快速排序二叉树
- 24. Generete本地插入排序的最坏情况?
- 25. Map reduce:最坏的情况
- 26. 为什么listbox2仍然是空的?
- 27. 为什么仍然是空的数据
- 28. 为什么这仍然是可选的?
- 29. 为什么没有冲突的git合并仍然会产生合并提交?
- 30. Splay树:最坏情况序列
从反向列表开始,手动运行算法。计算你的操作次数。 – 2013-05-10 04:25:22
这是一个http://stackoverflow.com/questions/7801861/why-is-merge-sort-worst的副本-case-run-time-on-log-n – Bull 2013-05-10 04:35:02