博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内部排序(堆排序)
阅读量:5251 次
发布时间:2019-06-14

本文共 455 字,大约阅读时间需要 1 分钟。

内部排序(堆排序)

定义

  

堆排序是利用这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。

  堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:

同时,我们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子

该数组从逻辑上讲就是一个堆结构,我们用简单的公式来描述一下堆的定义就是:

大顶堆:arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2]  

小顶堆:arr[i] <= arr[2i+1] && arr[i] <= arr[2i+2]  

ok,了解了这些定义。接下来,我们来看看堆排序的基本思想及基本步骤:

排序思想步骤

实现操作

转载于:https://www.cnblogs.com/guozepingboke/p/10750931.html

你可能感兴趣的文章
两个导体盘之间的电场
查看>>
保存网页文件目录中所有文件到本地
查看>>
单页应用 - Token 验证
查看>>
git 支持tree命令
查看>>
课堂练习-购书问题
查看>>
找出一个整数的所有非平凡因子
查看>>
initrd映像文档的作用和制作
查看>>
ASP.NET中 分析器错误:发现不明确的匹配
查看>>
[JS] 如何清空file input框 [整理]
查看>>
NHibernate之映射文件配置说明(转载3)
查看>>
面对一个“丢失了与用户“签订”的协议的修改”时进行的思考。
查看>>
(10)ASP.NET Core 中的环境(Environments:dev, stage, prod)
查看>>
PureFTPd安装配置
查看>>
微观时间单位
查看>>
markdown keynote
查看>>
session为什么需要持久化
查看>>
【Codeforces #166 Div2】Solutions
查看>>
Nginx入门篇(三)之虚拟主机配置
查看>>
Python之列表(list)
查看>>
android SQLite
查看>>