Skip to content

Commit e7f8306

Browse files
committed
add heap sort doc
1 parent da9a519 commit e7f8306

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

docs/7.heap_sort.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,16 @@
11
# 堆排序
22

33
## 概述
4-
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序
4+
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用 __堆的概念__ 来排序的选择排序
55

6-
## 算法步骤
6+
分为两种方法:
7+
1. 大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列;
8+
2. 小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;
79

10+
堆排序的平均时间复杂度为 O(nlogn).
11+
## 算法步骤
812

13+
1. 将待排序序列构建成一个堆H[0......n-1], 根据(升序降序需求)选择大顶堆或是不顶堆;
14+
2. 把堆首(最大值)和堆尾互换;
15+
3. 把堆的尺寸缩小1,并调用 shit_down(0),目的是把新的数组顶端数据调整到相应位置;
16+
4. 重复步骤2,直到堆的尺寸为1.

0 commit comments

Comments
 (0)