兰州大学数据实验 堆排序实验报告.docVIP

  • 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后回车: 八、实验小结: 你在编程过程中花时多少? 多少时间在纸上设计? 多少时间上机输入和调试? 多少时间在思考问题? 遇到了哪些难题? 你是怎么克服的? 你的收获有哪些?

文档评论(0)

1亿VIP精品文档

相关文档