mirror of
				https://github.com/krahets/hello-algo.git
				synced 2025-11-04 14:18:20 +08:00 
			
		
		
		
	Fix heap.md
This commit is contained in:
		@ -10,7 +10,7 @@ comments: true
 | 
				
			|||||||
- 「小顶堆 Min Heap」,任意结点的值 $\leq$ 其子结点的值;
 | 
					- 「小顶堆 Min Heap」,任意结点的值 $\leq$ 其子结点的值;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<figure markdown>
 | 
					<figure markdown>
 | 
				
			||||||
  { width="600" }
 | 
					  
 | 
				
			||||||
</figure>
 | 
					</figure>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 8.1.1. 堆术语与性质
 | 
					## 8.1.1. 堆术语与性质
 | 
				
			||||||
@ -217,9 +217,7 @@ comments: true
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
具体地,给定索引 $i$ ,那么其左子结点索引为 $2i + 1$ 、右子结点索引为 $2i + 2$ 、父结点索引为 $(i - 1) / 2$ (向下整除)。当索引越界时,代表空结点或结点不存在。
 | 
					具体地,给定索引 $i$ ,那么其左子结点索引为 $2i + 1$ 、右子结点索引为 $2i + 2$ 、父结点索引为 $(i - 1) / 2$ (向下整除)。当索引越界时,代表空结点或结点不存在。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<figure markdown>
 | 
					
 | 
				
			||||||
  { width="600" }
 | 
					 | 
				
			||||||
</figure>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
我们将索引映射公式封装成函数,以便后续使用。
 | 
					我们将索引映射公式封装成函数,以便后续使用。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -419,23 +417,23 @@ comments: true
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
=== "Step 1"
 | 
					=== "Step 1"
 | 
				
			||||||
    <figure markdown>
 | 
					    <figure markdown>
 | 
				
			||||||
      { width="600" }
 | 
					      
 | 
				
			||||||
    </figure>
 | 
					    </figure>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 2"
 | 
					=== "Step 2"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 3"
 | 
					=== "Step 3"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 4"
 | 
					=== "Step 4"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 5"
 | 
					=== "Step 5"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 6"
 | 
					=== "Step 6"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
设结点总数为 $n$ ,则树的高度为 $O(\log n)$ ,易得堆化操作的循环轮数最多为 $O(\log n)$ ,**因而元素入堆操作的时间复杂度为 $O(\log n)$** 。
 | 
					设结点总数为 $n$ ,则树的高度为 $O(\log n)$ ,易得堆化操作的循环轮数最多为 $O(\log n)$ ,**因而元素入堆操作的时间复杂度为 $O(\log n)$** 。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -570,34 +568,34 @@ comments: true
 | 
				
			|||||||
顾名思义,**从顶至底堆化的操作方向与从底至顶堆化相反**,我们比较根结点的值与其两个子结点的值,将最大的子结点与根结点执行交换,并循环以上操作,直到越过叶结点时结束,或当遇到无需交换的结点时提前结束。
 | 
					顾名思义,**从顶至底堆化的操作方向与从底至顶堆化相反**,我们比较根结点的值与其两个子结点的值,将最大的子结点与根结点执行交换,并循环以上操作,直到越过叶结点时结束,或当遇到无需交换的结点时提前结束。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 1"
 | 
					=== "Step 1"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 2"
 | 
					=== "Step 2"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 3"
 | 
					=== "Step 3"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 4"
 | 
					=== "Step 4"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 5"
 | 
					=== "Step 5"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 6"
 | 
					=== "Step 6"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 7"
 | 
					=== "Step 7"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 8"
 | 
					=== "Step 8"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 9"
 | 
					=== "Step 9"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
=== "Step 10"
 | 
					=== "Step 10"
 | 
				
			||||||
    { width="600" }
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
与元素入堆操作类似,**堆顶元素出堆操作的时间复杂度为 $O(\log n)$** 。
 | 
					与元素入堆操作类似,**堆顶元素出堆操作的时间复杂度为 $O(\log n)$** 。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -862,7 +860,7 @@ $$
 | 
				
			|||||||
T(h) = 2^0h + 2^1(h-1) + 2^2(h-2) + \cdots + 2^{(h-1)}\times1
 | 
					T(h) = 2^0h + 2^1(h-1) + 2^2(h-2) + \cdots + 2^{(h-1)}\times1
 | 
				
			||||||
$$
 | 
					$$
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{ width="600" }
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
化简上式需要借助中学的数列知识,先对 $T(h)$ 乘以 $2$ ,易得
 | 
					化简上式需要借助中学的数列知识,先对 $T(h)$ 乘以 $2$ ,易得
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user