堆排序实验报告_第1页
堆排序实验报告_第2页
堆排序实验报告_第3页
堆排序实验报告_第4页
堆排序实验报告_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 5 堆排序实验报告 堆排序实验 一需求和规格 Eg: 将用户输入的一组整型数据进行排序,构造成大顶堆;将已建立的大顶堆进行堆排序;在对话框中显示出已建成堆的具体结构;若操作错误能够给出用户相应的提示;通过 MFC实现可视化界面的操作; 二设计思想 1.将一组无序序列构造成一个堆: 假设序列长度为 n,以线性数组作为存储,那么从第i = n/2 个元素开始调整,分别和他的左右子树结点比较大小,和较大的那个交换;然后 i 自减,对这个新的 i 元素 进行调整,同样和他的左右子树根结点比较后进行调整,如果破坏了其中一个子树的堆平衡,那么需要继续对这个子树进行堆调整;这样调整到序列第一个元素后,这个序列就已经是大根堆 2.对堆进行堆排序 构造了堆之后,就可以对其进行堆排序 堆的最大元素已经在堆顶,将其和序列最后一个元素交换 这样得到两个序列, A=1 . n-1 B= n ,其中 B 是有序的, A 失去了大顶堆的平衡,这时候继续对 A2 / 5 进行调整,将其调整为大顶堆 调整为大顶堆后,和上面过程类似,一直到 A 中只余下一个元素为止 设计表示 给出具体存储结构,和关键函数操作功能说明,若没有存储结构,可以写宏定义等作为补充; 实现注释 能描述出涉及操作的参数含义,及操作实现的具体方案 设计表示 画出整体流程,及核心算法流程 用户手册 描述具体,能够根据该手册进行程序的使用,并给出操作注意事项; 调试报告 表达具体,能诊断出给定输入得不到正确输出的原因和解决方案 *大家别忘了写总结 , 10分呢 6源程序关键代码和结果 源程序关键代码 / #include Status JudgeInput/编辑框一的判断 3 / 5 char JudgeNumberBuffer11=0,1,2,3,4,5,6,7,8,9, ; /判断第一个编辑框是否为空 if return ERROR;/输入为空 /判断第一个编辑框是否输入都是数字和空格 for /判断第一个编辑框的开头和结尾必须不是空格 if|= ) return ERROR; int Count=1; /将字符转化为数字 for char *p;/临时指针 int *HeapSortpoint;/用于存放数据的指针 p=buffer; if= ) *=0; Count+; if= ) return ERROR; for if=JudgeNumberBufferj)break; return ERROR; if HeapSortpoint=malloc*sizeof); IntTable=HeapSortpoint; int Ikey=1; while num=Count;/ 将 数 组 数 目 传 给 num *IntTable=num;/将个数放入里面 return OK; Ikey+; p=p+strlen+1;HeapSortpointIkey=atoi;/将数据存入数组中 void HeapAdjust/用于堆调整 void YZHeapSort for HeapAdjust; for int buffer; 4 / 5 buffer=Buffer1; Buffer1=Bufferj; Bufferj=buffer; HeapAdjust; int rs=Buffers;/用于存放临时存放数字 for j+;break; ifif)Buffers=Bufferj;s=j;Buffers=rs; / void CHeapSortDlg:OnBuildButton void CHeapSortDlg:OnPaixunButton / TODO: Add your control notification handler code here m_; free; / TODO: Add your contro l notification handler code here UpdateData;/更新编辑框里面的数据 char *Buffer;/用于指向编辑框字符串的指针 int num;/用于存放字符的个数 num=m_;/字符个数 Buffer=m_;/用于存放其指针 if) for HeapAdjust; ShowTheTree; MessageBox; Message

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论