Advertisement

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)

还没有任何评论哟~