- 12
- 0
- 约1.16千字
- 约 11页
- 2017-12-21 发布于江西
- 举报
兰州大学数据实验 堆排序实验报告
兰州大学信息科学与工程学院
数据结构实验报告
课程名称 数据结构
实验名称 数据结构实验
专业班级
姓 名
学 号
实验日期 第 18 周 星期 日,三四 节
实验地点 贺兰堂
2012—2013学年度第 一 学期
一、实验目的
1、熟悉堆排序方法
二、实验内容
1、 假设有一个数据类型为整型的一维数组A,A 中的数据元素呈无序状态,编写一个采用堆排序法将A中的数据元素按由小到大进行排序的程序。 四、需求分析1、输入的形式和输入值的范围2、输出的形式3、程序所能达到的功能4、测试数据: 五、概要设计
为了实现上述操作,应以为存储结构。
1基本操作:
初始条件:存在参与比较的整型数据m,n;
操作结果:如果mn返回1,否则返回0。
(2)void headadjust( int *h ,int s ,int m )
初始条件:存在整型的数组的指针h,数据起始位置s,结束位置m;
操作结果:对编号s到m的数组中的数据进行筛选,成为根节点较大数据的堆。
(3)void headsort(int *h, int count)
初始条件:存在整型数组指针h,数组内数据的总数count;
操作结果:使整型数组内的数据进行堆排序。
2、本程序包含个模块:
(1)主程序模块;
(2)()模块调用图:
主程序模块
堆排序函数
i 的初始值从中间编号循环到等于0,每次循环i数值减一
调用筛选堆函数(h,i,count)
i的值从数组长度循环到0,每次循环i的值减一
将堆顶记录和当前未经排序子序列[0~i]中最后一个记录相互交换
将[0~i-1]重新调整为大顶堆
六、详细设计
1元素类型,结点类型:
2、每个模块的分析:
(1)主程序模块:
)函数调用关系图main()
void headsort(int *h, int count)
void headadjust( int *h ,int s ,int m )
int compare ( int n , int m)
3、完整的程序:程序使用说明及测试结果
1程序使用说明
(1)本程序的运行环境为VC6.0。
(2)进入演示程序后即显示提示信息:2、测试结果调试中的错误及解决办法。运行界
再输入56 8 12 3 96后回车:
八、实验小结:
你在编程过程中花时多少?
多少时间在纸上设计?
多少时间上机输入和调试?
多少时间在思考问题?
遇到了哪些难题?
你是怎么克服的?
你的收获有哪些?
您可能关注的文档
最近下载
- 河道整治工程施工质量创优计划的实施效果评估与改进策略.docx VIP
- 水利工程质量创优方案(3篇).docx VIP
- 110kv变电站的设计毕业设计(论文).docx VIP
- 华中师范大学《C++程序设计》2020-2021学年第一学期期末试卷.pdf VIP
- 电力系统仿真:电力系统暂态仿真all.docx VIP
- 电力系统暂态稳定性仿真研究毕业设计(论文).docx VIP
- 3 浮力——液面升降问题(原卷版).docx VIP
- 核心素养视域下的初中数学单元作业设计研究.docx VIP
- 纪念红军长征90周年演讲稿(2025年最新版).pptx VIP
- 2002-2012 十年北京卷高考语文试卷深度解析.pdf VIP
原创力文档

文档评论(0)