网站大量收购独家精品文档,联系QQ:2885784924

数据结构实验十四.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验十四

一、实验目的 1.掌握排序算法基本思想和实现。 2.通过实现掌握直接插入排序、折半插入排序、2-路插入排序的具体实现。 二、实验环境 1.硬件:每个学生需配备计算机一台。操作系统:DOS或Windows: 2.软件:DOS或Windows操作系统+Turbo C; 三、实验要求 1.对随机若干个数据进行直接插入排序、折半插入排序、2-路插入排序。 2.掌握这3种基本排序的算法思想和实现过程。 四、实验内容 1.在自己的U盘的“姓名+学号”文件夹中创建“实验14”,本次实验的所有程序和数据都要求存储到本文件夹中。 2.设计随机数来测试排序算法运行时间的程序,其中可以通过修改RANDNUM的值来更改测试的数据值。具体参考如下: # define RANDNUM 10000 //随机数的个数 For i 0;i RANDNUM;i++ //产生1万个随机数 iRandNum[i] rand %RANDNUM; 3.对随机数据进行直接插入排序、折半插入排序、2-路插入排序。 4.排序算法进行测试,记录运行时间;把需排序的数改为20000,进行同样测试,并比较测试结果。 五、代码如下 #include #include #define randnum 10//随机数的个数定为10 //直接插入 void ylx_insertsort int a[] for int i 2;i randnum;i++ if a[i] a[i-1] a[0] a[i]; a[i] a[i-1]; for int j i-2;a[0] a[j];--j a[j+1] a[j]; //for往前搜索是否存在不恰当的位置存储a[j+1] a[0];//最终待插入元素的位置确定 //if表示如果待插入元素是小于前面的元素 //折半插入排序 void ylx_binsertsort int a[] int m 0; for int i 2;i randnum;i++ a[0] a[i]; int low 1;int high i-1; while low high m low+high /2; if a[0] a[m] high m-1;//表示在前半段 else low m+1; //while循环查找待查元素的应放位置high+1 for int j i-1;j high+1;--j a[j+1] a[j]; a[high+1] a[0];//最后将待查元素放入到high+1位置 void main int ylx_irand[randnum+1]; for int i 1;i randnum;i++ ylx_irand[i] rand %randnum; //for循环产生随机数存数起来 printf 直接插入排序\n ; ylx_insertsort ylx_irand ; for int j 1;j randnum+1;j++ printf 第%d个元素是:%d\n,j,ylx_irand[j] ; printf 折半插入排序\n ; ylx_binsertsort ylx_irand ; for j 1;j randnum+1;j++ printf 第%d个元素是:%d\n,j,ylx_irand[j] ; 六、运行结果截图

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档