mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-16 18:10:13 +08:00
Update 堆.md
修改笔误
This commit is contained in:
parent
6e77ea0830
commit
abd89072ca
@ -13,7 +13,7 @@
|
||||
- 很多博客说堆是完全二叉树,其实并非如此,**堆不一定是完全二叉树**,只是为了方便存储和索引,我们通常用完全二叉树的形式来表示堆,事实上,广为人知的斐波那契堆和二项堆就不是完全二叉树,它们甚至都不是二叉树。
|
||||
- (**二叉**)堆是一个数组,它可以被看成是一个 **近似的完全二叉树**。——《算法导论》第三版
|
||||
|
||||
大家可以尝试判断下面给出的图是否是二叉树?
|
||||
大家可以尝试判断下面给出的图是否是堆?
|
||||
|
||||

|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
|
||||
|
||||
## 堆的存储
|
||||
之前介绍树的时候说过,由于完全二叉树的优秀性质,利用数组存储二叉树即节省空间,又方便索引(若根结点的序号为1,那么对于树中任意节点i,其左子节点序号为 `2\*i`,右子节点序号为 `2\*i+1`)。
|
||||
之前介绍树的时候说过,由于完全二叉树的优秀性质,利用数组存储二叉树即节省空间,又方便索引(若根结点的序号为1,那么对于树中任意节点i,其左子节点序号为 `2*i`,右子节点序号为 `2*i+1`)。
|
||||
|
||||
为了方便存储和索引,(二叉)堆可以用完全二叉树的形式进行存储。存储的方式如下图所示:
|
||||
|
||||
@ -189,4 +189,4 @@
|
||||
|
||||

|
||||
|
||||
堆排序完成!
|
||||
堆排序完成!
|
||||
|
Loading…
x
Reference in New Issue
Block a user