mirror of
https://github.com/krahets/hello-algo.git
synced 2026-08-14 20:50:58 +00:00
build
This commit is contained in:
@@ -17,7 +17,7 @@ comments: true
|
||||
|
||||
## 11.7.1 算法流程
|
||||
|
||||
设数组的长度为 $n$ ,堆排序的流程如下图所示。
|
||||
设数组的长度为 $n$ ,堆排序的流程如图 11-12 所示。
|
||||
|
||||
1. 输入数组并建立大顶堆。完成后,最大元素位于堆顶。
|
||||
2. 将堆顶元素(第一个元素)与堆底元素(最后一个元素)交换。完成交换后,堆的长度减 $1$ ,已排序元素数量加 $1$ 。
|
||||
@@ -64,7 +64,7 @@ comments: true
|
||||
=== "<12>"
|
||||

|
||||
|
||||
<p align="center"> 图:堆排序步骤 </p>
|
||||
<p align="center"> 图 11-12 堆排序步骤 </p>
|
||||
|
||||
在代码实现中,我们使用了与堆章节相同的从顶至底堆化 `sift_down()` 函数。值得注意的是,由于堆的长度会随着提取最大元素而减小,因此我们需要给 `sift_down()` 函数添加一个长度参数 $n$ ,用于指定堆的当前有效长度。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user