数据结构和算法知识点

1.用堆从海量数据里面找最大 个数是用最小堆,而不是最大堆,反之找最小 个数字是用最大堆
2.建堆的时间复杂度为 ( n ) 证明如下:
假设树高度为 h (根结点为第1层),那么第 i 层结点数为 2 i 1 ,我们从最后一层非叶结点开始调整,于是总的时间复杂度为

= 2 h 2 1 + 2 h 3 2 + + 1 ( h 1 ) = 2 h 2 ( h 1 )

因为 n = 2 h 1 ,所以总的时间复杂度为 S = n l o g ( n ) = O ( n )

猜你喜欢

转载自blog.csdn.net/qq_27576655/article/details/81838862