算法导论中的堆排序算法时间复杂度推导
来源:互联网 发布:centos cp 拷贝文件夹 编辑:程序博客网 时间:2024/05/22 15:47
maxheapify的复杂度是o(lgn),而建立最大堆的复杂度是o(n),那么是不是堆排序算法的复杂度就是二者相乘呢?当然不是,怎么可能这么简单
首先,在建立一次最大堆,消耗n的时间,继续执行,每次将最大的数(根节点)选出来,然后maxheapify,直到将整个数组的元素历遍完毕。好了,回顾一遍堆排序算法后,开始正式推导。
首先,设堆的大小为n,堆的高度为lgn,设当前元素所在的高度为h
则每一次maxheapify的时间复杂度为0(lgn-h), 前提是maxheapify的复杂度为lgn
Buildheap 的复杂度为o(n)
平均每一层中应该有 个元素,所以,对排阻算法的时间复杂度应该为: 0(lgn-h)=o( (lgn-h))=o(nlgn)
- 算法导论中的堆排序算法时间复杂度推导
- 堆排序算法时间复杂度推导
- 堆排序算法及时间复杂度分析
- 算法导论 堆排序
- 算法导论--堆排序
- 【算法导论】 堆排序
- 算法导论-----堆排序
- 【算法导论】堆排序
- 算法导论-堆排序
- 堆排序--算法导论
- 算法导论:堆排序
- 算法导论:堆排序
- 【算法导论】堆排序
- 算法导论--堆排序
- 算法导论 堆排序
- 【算法导论】 堆排序
- 算法导论---堆排序
- 算法导论 堆排序
- 手指的方向……
- 职业规划测试
- 主题:[转] Flex Builder 3.0 for Eclipse
- XNA学习笔记——线、三角形的绘制
- 令人出乎意外的感动
- 算法导论中的堆排序算法时间复杂度推导
- 在ubuntu/archlinux中安装sun的nimbus主题
- 新一代移动通讯
- 一个简单方法完成C#时间间隔的计算
- OGRE1.7学习笔记一:编译ogre
- 在archlinux中安装realplayer
- chatroulette: 早晚被封
- 转眼间,青春不再
- 在ubuntu/archlinux下安装下载的字体,或其他购买的字体