1. 首页
  2. 大数据
  3. Hadoop
  4. C语言对堆排序一个算法思路和实现代码

C语言对堆排序一个算法思路和实现代码

上传者: 2020-09-25 11:15:35上传 PDF文件 41.89KB 热度 12次

算法思想简单描述:堆排序是一种树形选择排序,是对直接选择排序的有效改进。在这里只讨论满足前者条件的堆。由堆的定义可以看出,堆顶元素必为最大项。完全二叉树可以很直观地表示堆的结构。堆顶为根,其它为左子树、右子树。初始时把要排序的数的序列看作是一棵顺序存储的二叉树,调整它们的存储顺序,使之成为一个堆,这时堆的根节点的数最大。从算法描述来看,堆排序需要两个过程,一是建立堆,二是堆顶与堆的最后一个元素交换位置。所以堆排序有两个函数组成。一是建堆的渗透函数,二是反复调用渗透函数实现排序的函数。算法时间复杂度O。

用户评论