关于数组取4n

来源:9-2 线段树基础表示

IT_god

2019-08-31

9’39’’ 处 如果 n = 2^k时, 蓝色n + 红色 n = 2n ; 当 n
= 2^k+1 的时候 蓝色和红色为啥还用n = 2^k时候得出的结论: 蓝色+红色 = 2n

写回答

2回答

liuyubobobo

2019-08-31

这是一个粗略的计算,关键是绿色部分等于红色+蓝色。


如果对具体的空间大小感兴趣,可以参考这个问答:https://coding.imooc.com/learn/questiondetail/58660.html


继续加油!:)

0
1
IT_god
谢谢!
2019-08-31
共1条回复

何时才能成大佬

2019-10-06

/*

* 对于满二叉树(设根节点所在的层为第1层)来说

* 第i层有 2^(i-1)个元素

* 前i层共有 2^i-1个元素

* 前i-1层共有 2^(i-1)-1个元素

* 故:第i层的元素个数=前i-1层共有的元素个数+1

*假设区间里有n个元素

* 第一种情况:n=2^k (k是正整数)

* 此时开辟的满二叉树的空间大小为:n+(n-1)=2n-1

*第二种情况:n≠2^k (k是正整数)

*此时假设2^p < n < 2^q  且q=p+1  (p、q都是正整数)

*此时开辟的满二叉树的空间大小为: 2^q+2^p+(2^p-1) =2^(p+1)+2^p+2^p-1

* =(2^p)*2+2^p+2^p-1

* <n*2+n+n-1

* =4n-1

* 因为2n-1 < 4n-1

* 所以对于n个元素,需要开辟4n-1个空间

* */


2
0

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程