首先这个循环是从i = headsize/2 -> 1,也就是说这是一个bottom-up的建堆。于是,有1/2的元素向下比较了一次,有1/4的向下比较了两次,1/8的,向下比较了3次,......,1/2^k的向下比较了k次,其中1/2^k <= 1, k 约等于lg(n)。于是就有总的比较量:

T = () * n

令 S = 

1/2 S = 
S - 1/2S = 1/2S = 
到这步就很明显了吧,S <= 2
于是T <= 2n => T = O(n).

最新文章

  1. sql server 更新视图的sp
  2. NashZhou的自我介绍
  3. 1025关于explain的补充1
  4. Hadoop入门进阶课程9--Mahout介绍、安装与应用案例
  5. MySQL创建数据表
  6. Codeforces Round #104 (Div. 1)
  7. hadoop2.5.2学习及实践笔记(二)—— 编译源代码及导入源码至eclipse
  8. oracle merge用法
  9. Oracle 12c Dataguard 数据库恢复
  10. 在VS中让一个JS文件智能提示另一个JS文件中的成员
  11. (转载)研究openvswitch的流量模式
  12. Windows 下多线程编程技术
  13. ViewFilpper
  14. ALV编辑行内容有改变时候操作
  15. JS的组成部分、引入页面的方法以及命名规范
  16. js 数组的一些基本操作
  17. Evensgn 剪树枝 树规
  18. Dapp的PVP发模式--magic-maze-2d游戏解读
  19. PostGIS空间查询
  20. ETL面试题集锦

热门文章

  1. jQuery - 获取内容和属性
  2. angular.js 数字
  3. 基于nodejs的消息中心
  4. css3基础教程十三征服CSS3选择器
  5. 脚本学习python和linux-shell和jQuery(javascript)
  6. PHP数据库
  7. 马的遍历问题-回溯法应用-ACM
  8. UFLDL实验报告1: Softmax Regression
  9. 使用C语言获取当前系统的时间
  10. 研究不定数量参数的函数并实现一个printf函数