跪求数据结构:堆排序算法演示

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:39:41
要求输入元素序列采用堆排序进行排序,并将依据树状结构在屏幕上输出层次遍历的结果·· 跪求大侠帮忙了!

你这个没有现成的,推荐个网站:编程论坛

#include <stdio.h>
void adjust(int *list,const int root,const int n);
void HeapSort(int *list,const int n)
{
int i=0;
for(i=n/2;i>=1;i--)
adjust(list,i-1,n);
int t=list[n];
list[n]=list[0];
list[0]=t;
if(n>1)
HeapSort(list,n-1);
else
{
int t=list[1];
list[1]=list[0];
list[0]=t;
}
}
void adjust(int *list,const int root,const int n)
{
int e=list[root];
int k=e,j=0;
for(j=2*root;j<=n;j*=2)
{
if(j<n)
if(list[j]<list[j+1])
j++;
if(k>=list[j])
break;
list[j/2]=list[j];
}
list[j/2]=e;
}
int main(int argc,char **argv)
{
int i=0;
int src[10]={26,5,7