C语言开发堆排序算法
发布时间
阅读量:
阅读量
堆排序(Heap Sort)是针对简单选择排序算法的一种优化方式。
所谓堆,是一种具备特定特性的完全二叉树结构:若每个节点的数值均不小于其左右子节点的数值,则称为大顶堆;反之,若每个节点的数值均不大于其左右子节点的数值,则称为小顶堆。
堆排序方法正是借助堆(通常采用大顶堆)实现的一种排序技术。其核心思想在于,将待处理的数据序列构建为一个大顶堆,此时整个序列中的最大值将出现在堆的根节点位置。将其移除后,对剩下的n-1个元素重新构建为一个大顶堆,从而获取次大的元素值。通过不断重复这一过程,最终可获得一个有序排列的结果。
以下程序代码已在DEV C++环境中完成调试并成功运行。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct
{
int r[10];
int length;
}SqList;
void swap(SqList *L,int i,int j)
{
int temp=L->r[i];
L->r[i]=L->r[j];
L->r[j]=temp;
}
全部评论 (0)
还没有任何评论哟~
