【算法导论】决策树下界的形象理解?

ll雯 2016-07-15 08:33:47
我在看算法导论的比较排序,作者用决策树证明了比较排序的下界是nlgn
但是证明过程是用比较法,
能否用更加形象的方式解释这个nlgn是怎么来的呢?
(比如我尝试这样解释:对于n个数的排序,每个数至少需要比较lgn次,那么这个lgn又是怎么来的呢?)








决策树排序的下界

如果决策树是针对n个元素排序,那么它的高度至少是nlgn。

在最坏情况下,任何比较排序算法都需要做Ω(nlgn)次比较。

因为输入数据的Ann种可能的排列都是叶结点,所以Ann≤l,由于在一棵高位h的二叉树中,叶结点的数目不多于2h,所以有:

n!≤l≤2h

对两边取对数:

=> lg2h≥lgn!

=> lg2h=hlg2≥lgn!

又因为:

lg2<1

所以:

n≥lgn!=Ω(nlgn) (此处涉及对n阶乘的变换,需要使用斯特林公式)

因为堆排序和归并排序的运行时间上界均为O(nlgn),因此它们都是渐近最优的比较排序算法。
...全文
860 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
猴头 2016-07-15
  • 打赏
  • 举报
回复
算法导论?真高深啊~~~~
luciferisnotsatan 2016-07-15
  • 打赏
  • 举报
回复
正经回复下,这问题该发去C/C++大版,应该有人会解答。
姓小名白丶 2016-07-15
  • 打赏
  • 举报
回复
引用 5 楼 luciferisnotsatan 的回复:
引用 4 楼 LeiRobin 的回复:
[quote=引用 3 楼 luciferisnotsatan 的回复:] 这里是水区
请不要侮辱广大水友的智商!
和智商有啥关系? 你喜欢加班,留公司里加班,别抱着个电脑在夜总会里码代码[/quote]
luciferisnotsatan 2016-07-15
  • 打赏
  • 举报
回复
引用 4 楼 LeiRobin 的回复:
引用 3 楼 luciferisnotsatan 的回复:
这里是水区
请不要侮辱广大水友的智商!
和智商有啥关系? 你喜欢加班,留公司里加班,别抱着个电脑在夜总会里码代码
姓小名白丶 2016-07-15
  • 打赏
  • 举报
回复
引用 3 楼 luciferisnotsatan 的回复:
这里是水区
请不要侮辱广大水友的智商!
luciferisnotsatan 2016-07-15
  • 打赏
  • 举报
回复
这里是水区
  • 打赏
  • 举报
回复
今年是考试作弊被判刑的第一年,刚进监狱,狱友就问小伙儿犯什么事儿了进来了,小伙儿犹豫半天,说出来你们可能不信! 狱友问:“什么事啊?有什么不相信的,不就是杀人放火,偷抢拐骗么?” “我是通过考试进来的!”
把分全给哥 2016-07-15
  • 打赏
  • 举报
回复

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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