Skip to content

Commit e1959fb

Browse files
authored
Update README.md
堆及其相关算法(堆排序)的实现
1 parent 39f1d34 commit e1959fb

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

README.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,32 @@
5959

6060
----------
6161

62+
- 堆(数组实现)的数据结构及其相关算法:堆结构实际上是一个完全二叉树,能方便地从中取出最小/大元素,其包含两个要素,即存储数组heap[]和堆大小size。本实现为最小堆,具体操作包括:
63+
64+
- 堆的构建(创建一个空堆,基于数组的构建)
65+
- 堆的插入(插入到堆尾,再自下向上调整为最小堆)
66+
- 堆的删除(删除堆顶元素并用堆尾元素添补,再自上向下调整为最小堆)
67+
- 堆排序(时间复杂度:O(nlgn),空间复杂度O(1),不稳定):升序排序一般用最大堆,不断地将堆顶元素放到数组最后并缩小堆的范围
68+
- 堆的打印(树的前序遍历的应用)
69+
70+
----------
71+
72+
6273
- 八大排序算法及其实现,具体包括直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序,归并排序,基数排序在内的八种排序算法,同时对各种算法的基本特征做出了详细分析:
6374

6475
- 算法基本思想
65-
- 算法的种类:插入排序(直接插入排序,希尔排序),选择排序(直接选择排序,堆排序),交换排序(冒泡排序,快速排序),归并排序,分配排序(基数排序)
76+
- 算法的种类:插入排序(直接插入排序,希尔排序),选择排序(直接选择排序,堆排序(在堆的相关实现中给出)),交换排序(冒泡排序,快速排序),归并排序,分配排序(基数排序)
6677
- 算法的时间复杂度
6778
- 算法的空间复杂度
6879
- 算法的稳定性
69-
- 内部排序
80+
- 内部排序/外部排序
7081

7182
----------
7283

73-
Ps:源码中每个包对应一个数据结构及其算法的实现。若项目中的源代码存在谬误,请不吝指出,在此拜谢!
84+
<font color='red'><b>注意:</b></font>
85+
86+
- 堆排序的源码在堆的相关实现中给出
87+
- 源码中每个包对应一个数据结构及其算法的实现。若项目中的源代码存在谬误,请不吝指出,在此拜谢!
7488

7589

7690

0 commit comments

Comments
 (0)