- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计 学部:信息科学与技术学部 专业:计算机科学与技术 目录 TOC \o 1-3 \h \z \u HYPERLINK \l _Toc12412 一、 实验题目 PAGEREF _Toc12412 1 HYPERLINK \l _Toc2674 二、实验目的和要求 PAGEREF _Toc2674 1 HYPERLINK \l _Toc1264 三、实验内容和原理 PAGEREF _Toc1264 1 HYPERLINK \l _Toc17096 四、实验环境 PAGEREF _Toc17096 1 HYPERLINK \l _Toc28150 五、自定义函数 PAGEREF _Toc28150 2 HYPERLINK \l _Toc14394 1.生成随机数的函数 PAGEREF _Toc14394 2 HYPERLINK \l _Toc18481 2.快速排序函数 PAGEREF _Toc18481 2 HYPERLINK \l _Toc5490 3.堆排序函数 PAGEREF _Toc5490 3 HYPERLINK \l _Toc6640 4.显示函数 PAGEREF _Toc6640 3 HYPERLINK \l _Toc23716 5.主函数 PAGEREF _Toc23716 4 HYPERLINK \l _Toc9517 六、运行截图 PAGEREF _Toc9517 4 HYPERLINK \l _Toc22037 七、代码清单 PAGEREF _Toc22037 5实验题目排序综合 利用随机函数产生N个随机整数,对这些数采用三种方法(快速排序,基数排序,堆排序)。二、实验目的和要求⑴ 掌握快速排序的基本概念和使用方法;⑵ 掌握堆排序的基本概念和使用方法;独立设计和完成快速,堆排序的程序设计,能够说明他们各自的排序的原理和优缺点。能够应用这两种排序到今后的大型程序设计之中并能够区分什么时候用哪种排序更为简便和快捷。分析两种排序方法的时间复杂度。三、实验内容和原理 ⑴ 实验内容:设计快速、堆排序算法 快速排序:在待排序的N个记录中,任取一个记录作为基准,经过一趟排序后以基准记录的关键字把全部记录分为两部分,所有关键字值比基准记录关键字值大的记录都排列在基准记录之后;然后堆基准记录前后的这两部分分别重复这样的过程们的到本趟排序的两个新到位的基准和4个部分……如此重复上述过程,直到每一个部分只剩下一个记录。堆排序:对待排序的文件中的N个记录,依它们的关键字值大小按堆的定义排成一个序列,从而输出堆顶的最小关键字的记录,然后堆剩余的关键子再次建堆,便得到次小关键字的记录,如此反复惊醒输出和建堆,直到全部记录按关键字排成有序序列时为止。四、实验环境硬件:(1)学生用微机(2)多媒体实验教室软件:(1)Windows XP中文操作系统 (2)VC++6.0五、自定义函数1.生成随机数的函数/*产生随机数*/void creat(sqlist *l){ int i; printf(请输入要产生的随机数个数:); scanf(%d,l-length); srand((unsigned)time(NULL)); //给srand()提供一个种子,它是一个unsigned int类型, for(i=1;i=l-length;i++) { l-r[i].key = rand() %900+100; //调用rand(),返回一个随机数(在0到32767之间) printf(%d ,l-r[i].key); } printf(\n);}2.快速排序函数/*交换顺序表中子表r[low...high]的记录,使枢轴记录到位,并返回其所在的位置*/int partion(sqlist *l,int low,int high){ int pivotkey; l-r[0]=l-r[low]; //用子表的第一个记录作枢轴记录 pivotkey=l-r[low].key; //枢轴记录关键字 while(lowhigh) //从表的两端交替的向中间扫描 { while(lowhighl-r[high].key=pivotkey) --high; l-r[low]=l-r[high]; //将比枢轴记录小的记录移到低端 while(lowhighl-r[low].key=pivotkey) ++low; l-r[high]=l-r[low]; //将比枢轴记录大的记录移到低端 } l-r[low]=l-r[0]; //
您可能关注的文档
最近下载
- 侠客风云传养成模式触发剧情一览.pdf VIP
- YST 582-2013 电池级碳酸锂.pdf
- 淘股吧高手语录.docx VIP
- 2024~2025学年上学期七年级第一次月考数学试题(含答案).pdf VIP
- GB-T6284-1986化工产品中水分含量测定的通用方法重量法.pdf
- MSC:人工智能赋能可持续发展和投资白皮书.pdf VIP
- 24J306 窗井、设备吊装口、排水沟、集水坑图集.docx VIP
- 2014年深圳市坪山新区主要病媒生物监测及白纹伊蚊抗药性研究.pdf VIP
- T∕CBDA 69-2023 建筑装饰装修碳排放计算标准.pdf
- 国际私法(暨南大学)中国大学MOOC 慕课 章节测验 期末考试答案.docx VIP
文档评论(0)