前言
本章节将分享向上调整法和向下调整法以及堆排序时间复杂度的计算方法以及总结
先说总结:
向上调整法时间复杂度O(N) = NlogN
向下调整法的时间复杂度O(N) = N
堆排序的时间复杂度O(N) = N+NlogN
一、向下调整法
二、向上调整法
三、堆排序
堆排序的过程如下:
所有数从顶上到最底下所花的时间:
从堆顶上到最底下:
当在h层时:有2^h-1个元素, 从最顶上到最底下需要走最多h-1次
所以:从最顶上到最底下 ,所有元素需要花费的次数为 2^h-1 * (h-1)
当在h - 1层时:有2^h-2个元素, 从最顶上到最底下需要走最多h-2次
所以:从最顶上到最底下 ,所有元素需要花费的次数为 2^h-2 * (h-2)
所以,最终需要花费的时间就是
与上面的向上调整法的结果一样,所以这里就简化计算过程
直接得出结果:
所有数从顶上到最底下所花的时间为N*logN;
向下调整法的时间复杂度为N
所以堆排序的时间复杂度就是:N + NlogN(规范写法:O(N) = NlogN)
总结
以上就是今天要讲的内容,本篇文章着重讲解了向上调整和向下调整以及堆排序的时间复杂度的计算过程,更多知识分享内容今后将会持续更新,敬请关注!