C 语言实现堆排序 (Heap Sort)

2019-05-01  本文已影响0人  捡个七

堆排序是一种基于「堆」这一数据结构的排序算法。堆是一种近似完全二叉树的结构,分为大顶堆和小顶堆这两种。

如果使用大顶堆的话,最后的排序结果会是升序;如果采用小顶堆的话,最后的排序结果会是降序。

使用大顶堆实现数字大小排序

首先会使用大顶堆来实现数字的从小到大排序,主要分为下面 3 个过程:

实现代码如下所示:

使用小顶堆实现字符串大小排序

和大顶堆的过程一样,只是有些微小的差别:

实现代码如下所示:

具体代码可见这个 repo 中的 Homework-4mid-exam

参考:

[1]. 堆排序 - 维基百科
[2]. 图解排序算法(三)之堆排序

上一篇下一篇

猜你喜欢

热点阅读