堆和二叉查找树的建立的时间复杂度

根据算法可以直观的推测出他们的算法复杂度为O(nlogn)但这并不精确。我们以下推导为O(n)

首先关于堆

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

《堆和二叉查找树的建立的时间复杂度》

由等比数列求和后再求1/2S可得S<=2.

堆同理。

    原文作者:二叉查找树
    原文地址: https://blog.csdn.net/vainlyhopelim/article/details/47378373
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞