ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:140.69KB ,
资源ID:13085065      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13085065.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构排序实验报告.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数据结构排序实验报告.docx

1、数据结构排序实验报告数据结构排序实验报告数据结构课程设计报告实验五 排序一、需求分析:本演示程序用C+6.0编写,完成各种排序的实现,对输入的一组数字实现不同的排序方法,对其由小到大顺序输出。(1)分别对直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序算法进行编写。(2)、对存储的函数即输入的数字进行遍历。(3)、初始化函数对输入的数字进行保存。(4)、主函数实现使用者操作界面的编写,对输入、选择、保存、输出的各种实现。这当中还包括了各个函数的调用的实现。(5)、程序所能达到的功能:完成对输入的数字的生成,并通过对各排序的选择实现数字从小到大的输出。二、程序主要功能以及基本要求:(

2、1)、设计一个菜单,格式如下:1、直接插入排序2、希尔排序3、冒泡排序4、快速排序5、选择排序6、堆排序 int i,j; for( i=2; i=L.length;i+) if(L.ri.key L.ri-1.key) L.r0 = L.ri; L.ri = L.ri-1; for( j=i-2; (L.r0.key L.rj.key); j-) L.rj+1 = L.rj; L.rj+1 = L.r0; 二、希尔排序void ShellSort(SqList &L) int i, j; int dk = 1;/增量 while(dk 0) dk /= 3;/减小增量 for (i = dk

3、; i = dk) & (L.rj-dk.key L.r0.key) L.rj.key = L.rj-dk.key; j -= dk; L.rj.key = L.r0.key; 三、冒泡排序void BubbleSort(SqList &L) int i,j; for(i=0;iL.length-2;i+) int flag = 1; for(j=0;j L.rj+1.key) flag = 0; int temp; temp = L.rj.key; L.rj.key = L.rj+1.key; L.rj+1.key = temp; /若无交换说明已经有序 if(flag=1) break;

4、四、快速排序int Partition(SqList &L,int low,int high) /分割区域函数 L.r0 = L.rlow; int pivotkey = L.rlow.key;/一般将顺序表第一个元素作为支点 while(low high) while(low=pivotkey) high-; L.rlow = L.rhigh; while(lowhigh & L.rlow.key=pivotkey) low+; L.rhigh = L.rlow; L.rlow = L.r0;/返回枢轴位置 return low;void QSort(SqList &L,int low,in

5、t high) /每张子表的快速排序 if(lowhigh) int pivotloc = Partition(L,low,high); QSort(L,low,pivotloc-1); QSort(L,pivotloc+1,high); void QuickSort(SqList &L) QSort(L,1,L.length);五、简单选择排序void SelectSort(SqList &L) int min; int j; for (int i = 0; i L.length; i+) / 选择第i小的记录,并交换 j = i; min = L.ri.key; for (int k =

6、i; k L.length; k+) / 在Ri.n-1中选择最小的记录 if (L.rk.key min) min = L.rk.key ; j = k; if (i != j) / 与第i个记录交换 int temp = L.ri.key; L.ri.key = L.rj.key; L.rj.key = temp; 六、堆排序void HeapAdjust(HeapType &H,int s,int m) /堆调整,将记录调整为小顶堆 int j; RedType rc = H.rs;/暂时存储根结点 for(j=2*s; j=m; j*=2) /沿着结点记录较小的向下筛选 if(jm &

7、 H.rj.key= H.rj.key) break; H.rs = H.rj; s = j; H.rs = rc;void HeapSort(HeapType &H) int i; RedType temp; for(i = H.length; i0; -i) HeapAdjust(H,i,H.length); for(i=H.length; i1; -i) temp = H.r1; H.r1 = H.ri; H.ri = temp; HeapAdjust(H,1,i-1); (2)遍历函数与初始化void Visit(SqList L) for(int i=1; i=L.length; i

8、+) coutL.ri.key ; coutendl;void InitSqList(SqList &L,int a) for(int i=1;i=L.length;i+) L.ri.key = ai;五、测试结果以下是各种界面的测试结果:(1)输入的界面 :(2)排序操作界面:(3)各种排序的结果: 六、设计不足以及存在问题本程序是基于C+6.0的实现,其实在设计上的改进可以利用类进行操作,这种类的改进了存储上的不足还可以实现了,对各种的函数基于类的实现,这就是对本程序的改进,这是十分重要的与是改进的基础。本程序出现过的问题是主函数对个函数的调用以及对存储数组的调用上出现了问题,导致排序的结果以及排序的界面出现了问题,的不到实现。后来对算法进行改进,最终把问题得以解决。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2