河北工业大学-数据结构实验报告-内部排序算法效率比较平台的设计与实现.doc
《河北工业大学-数据结构实验报告-内部排序算法效率比较平台的设计与实现.doc》由会员分享,可在线阅读,更多相关《河北工业大学-数据结构实验报告-内部排序算法效率比较平台的设计与实现.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-/ 实验五 内部排序算法效率比较平台的设计与实现1. 试验内容1、问题描述各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。设计和实现内部排序算法效率比较平台,通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观的感受。2、基本要求(1)对以下6种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。(2)待排序的表长不小于100;其中的数据要用伪随机数产生程序产生;至少要用5组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为3次移动)。(3)最后要对结果作出简单分析
2、,包括对各组数据得出结果波动大小的解释。3、测试数据由随机数产生器生成。4、实现提示主要工作是设法在已知算法中的适当位置插入对关键字的比较次数和移动次数的计数操作。程序还可以考虑几组数据的典型性,如,正序、逆序和不同程度的乱序。注意采用分块调试的方法。2. 试验目的掌握多种排序方法的基本思想,如直接插入、冒泡、简单选择、快速、堆、希尔排序等排序方法,并能够用高级语言实现。3. 流程图4. 源程序代码#include#include#include#define le 100struct pointchar key11;/冒泡法void maopao(point c)point a,ble;in
3、t i,j,jh=0,bj=0,q;for(i=0;ile;i+)bi=ci;for(i=0;ii;j-)bj=bj+1;q=strcmp(bi.key,bj.key);if(q=1)a=bi;bi=bj;bj=a;jh=jh+3;cout冒泡法:endl完成的序列如下:endl;for(i=0;ile;i+)coutbi.key ;coutendl共进行比较bj次,进行交换jh次endl*endl;/直接插入排序void zhijiecharu(point c)point ble+1;int i,j,jh=0,bj=0,q;for(i=0;ile;i+)bi+1=ci;for(i=2;i=l
4、e+1;i+)q=strcmp(bi.key,bi-1.key);bj=bj+1;if(q=-1)b0=bi;bi=bi-1;jh=jh+2;q=strcmp(b0.key,bi-2.key);bj=bj+1;for(j=i-2;q=-1;j-)bj+1=bj;jh=jh+1;q=strcmp(b0.key,bj-1.key);bj=bj+1;bj+1=b0;jh=jh+1;cout直接插入排序:endl完成的序列如下:endl;for(i=1;ile+1;i+)coutbi.key ;coutendl共进行比较bj次,进行交换jh次endl*endl;/void shellinsert(po
5、int c,int dk,int d)int j,i,q;point a;for(i=dk+1;i0&q=-1;j=j-dk)cj+dk=cj;d1=d1+1;q=strcmp(a.key,cj-dk.key);cj+dk=a;d1=d1+1;void shellsort(point c,int dlta,int t)int k,d2,i;d0=0;d1=0;point ble+1;for(k=0;kle;k+)bk+1=ck;for(k=0;kt;k+)shellinsert(b,dltak,d);cout希尔排序:endl完成的序列如下:endl;for(i=1;ile+1;i+)cout
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 河北 工业大学 数据结构 实验 试验 报告 讲演 呈文 内部 排序 算法 效率 效力 比较 对比 平台 设计 实现
限制150内