Merge sort的问题

sunner008 2010-04-16 03:48:18
数组<1、5、3、7、2、6、4、8>
1、
Merge sort算法的时间复杂度为:
Tb(n)为:
Tb(1)=0;
Tb(n)=Tb(┎n/2┑)+Tb(┖n/2┙)+(┖n/2┙),n>=2;

基于算法的记述请说明一下。

2、上式用O计算量应该如何表示?

一个练习册上的题我一点思路也没有请大家指教一下。
...全文
135 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FancyMouse 2010-04-17
  • 打赏
  • 举报
回复
没魔了233
帖子不能编辑 2010-04-17
  • 打赏
  • 举报
回复
当前问题规模为 n,所花时间为 T(n).
归并的过程中,每一次都呗划分成两个子问题,每个子问题规模为 (n/2),所花时间就可以表示为T(n/2),既然是两个子问题,那么就是 2T(n/2), 这两个子问题完成以后,还要合并一次,花费时间为 cn, c为一个常数,因此解决当前规模为n的问题,花费的总时间为
2T(n/2)+cn.
michael122 2010-04-16
  • 打赏
  • 举报
回复
看一下算法导论,里面有详细推导
sunner008 2010-04-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 michael122 的回复:]
mergesort的时间复杂度公式:

T(n)=2T(n/2)+O(n)

用主定理(或者自己画递归树来推导)可得T(n)=O(nlogn)
[/Quote]
那个是如何推导的的呢?主公式都是什么呢?递归树如何画呢?谢谢高手。
michael122 2010-04-16
  • 打赏
  • 举报
回复
mergesort的时间复杂度公式:

T(n)=2T(n/2)+O(n)

用主定理(或者自己画递归树来推导)可得T(n)=O(nlogn)

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧