数据结构堆排序.docx

上传人:b****7 文档编号:10424663 上传时间:2023-02-11 格式:DOCX 页数:11 大小:663.76KB
下载 相关 举报
数据结构堆排序.docx_第1页
第1页 / 共11页
数据结构堆排序.docx_第2页
第2页 / 共11页
数据结构堆排序.docx_第3页
第3页 / 共11页
数据结构堆排序.docx_第4页
第4页 / 共11页
数据结构堆排序.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据结构堆排序.docx

《数据结构堆排序.docx》由会员分享,可在线阅读,更多相关《数据结构堆排序.docx(11页珍藏版)》请在冰豆网上搜索。

数据结构堆排序.docx

数据结构堆排序

佛山科学技术学院

实验报告

课程名称数据结构

实验项目实现典型的排序算法

专业班级09计算机

(1)班姓名梁志恒学号________2009314138________

指导教师黄营成绩____________日期_______________

题目:

请编程实现堆排序算法。

#include

#definemaxsize100

typedefstruct

{

intkey[maxsize];

intlength;

}SqList;

//堆排序大根堆

voidHeapAdjust(SqList*L,ints,intm)

{

intj;

L->key[0]=L->key[s];

for(j=2*s;j<=m;j=2*j)

{

if(jkey[j]>L->key[j+1])

j++;

if(!

(L->key[0]>L->key[j]))

break;

L->key[s]=L->key[j];

s=j;

}

L->key[s]=L->key[0];

}

voidHeapSort(SqList*L)

{

//对顺序表key进行堆排序

inti;

for(i=L->length/2;i>0;i--)

HeapAdjust(L,i,L->length);

for(i=L->length;i>1;i--)

{

L->key[0]=L->key[1];

L->key[1]=L->key[i];

L->key[i]=L->key[0];

HeapAdjust(L,1,i-1);

}

}

voidmain()

{

SqListL;

inti,s=1;

printf("元素的个数length=");

scanf("%d",&(L.length));

for(i=1;i<=L.length;i++)

{

scanf("%d",&(L.key[i]));

}

HeapSort(&L,s,L.length);

printf("排序后:

\n");

for(i=1;i<=L.length;i++)

printf("%d",L.key[i]);

printf("\n");

}

1.请为所建立的堆选择适合的数据结构。

链式存储结构

typedefstructBiTNode

{

intdata;

structBiTNode*lchild,*rchild;

}BiTNode,*BiTree;

顺序存储结构

#definemaxsize100

typedefstruct

{

intkey[maxsize];

intlength;

}SqList;

 

2.给出如下12个数字,请画出建立小根堆的过程。

36,47,58,12,17,22,97,10,21,28,72,80

 

 

3.请画出从小根堆输出升序序列的过程。

\

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1