mirror of
https://github.com/krahets/hello-algo.git
synced 2025-12-16 03:59:18 +08:00
Add summary for the chapters of introduction, hashing, heap, graph, sorting
This commit is contained in:
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
@@ -10,7 +10,7 @@
|
||||
|
||||
### 基于堆化操作实现
|
||||
|
||||
然而,**存在一种更加高效的建堆方法**。设结点数量为 $n$ ,我们先将列表所有元素原封不动添加进堆,**然后迭代地对各个结点执行「从顶至底堆化」**。当然,**无需对叶结点执行堆化**,因为其没有子结点。
|
||||
然而,**存在一种更加高效的建堆方法**。设元素数量为 $n$ ,我们先将列表所有元素原封不动添加进堆,**然后迭代地对各个结点执行「从顶至底堆化」**。当然,**无需对叶结点执行堆化**,因为其没有子结点。
|
||||
|
||||
=== "Java"
|
||||
|
||||
@@ -89,7 +89,7 @@ $$
|
||||
T(h) = 2^0h + 2^1(h-1) + 2^2(h-2) + \cdots + 2^{(h-1)}\times1
|
||||
$$
|
||||
|
||||

|
||||

|
||||
|
||||
化简上式需要借助中学的数列知识,先对 $T(h)$ 乘以 $2$ ,易得
|
||||
|
||||
|
||||
8
docs/chapter_heap/summary.md
Normal file
8
docs/chapter_heap/summary.md
Normal file
@@ -0,0 +1,8 @@
|
||||
# 小结
|
||||
|
||||
- 堆是一棵限定条件下的完全二叉树,根据成立条件可分为大顶堆和小顶堆。大(小)顶堆的堆顶元素最大(小)。
|
||||
- 优先队列定义为一种具有出队优先级的队列。堆是实现优先队列的最常用数据结构。
|
||||
- 堆的常用操作和对应时间复杂度为元素入堆 $O(\log n)$ 、堆顶元素出堆 $O(\log n)$ 、访问堆顶元素 $O(1)$ 等。
|
||||
- 完全二叉树非常适合用数组来表示,因此我们一般用数组来存储堆。
|
||||
- 堆化操作用于修复堆的特性,在入堆和出堆操作中都会使用到。
|
||||
- 输入 $n$ 个元素并建堆的时间复杂度可以被优化至 $O(n)$ ,非常高效。
|
||||
Reference in New Issue
Block a user