- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告
—几种排序算法的演示
时间:2010-1-14
一 需求分析
运行环境
Microsoft Visual Studio 2005
程序所实现的功能
对直接插入排序、折半插入排序、冒泡排序、简单选择排序、快速排序、堆排序、归并排序算法的演示,并且输出每一趟的排序情况。
程序的输入(包含输入的数据格式和说明)
1排序种类三输入
2排序数的个数的输入
3所需排序的所有数的输入
程序的输出(程序输出的形式)
1主菜单的输出
2每一趟排序的输出,即排序过程的输出
二 设计说明
算法设计思想
1交换排序(冒泡排序、快速排序)
交换排序的基本思想是:对排序表中的数据元素按关键字进行两两比较,如果发生逆序(即排列顺序与排序后的次序正好相反),则两者交换位置,直到所有数据元素都排好序为止。
2插入排序(直接插入排序、折半插入排序)
插入排序的基本思想是:每一次设法把一个数据元素插入到已经排序的部分序列的合适位置,使得插入后的序列仍然是有序的。开始时建立一个初始的有序序列,它只包含一个数据元素。然后,从这个初始序列出发不断插入数据元素,直到最后一个数据元素插到有序序列后,整个排序工作就完成了。
3选择排序(简单选择排序、堆排序)
选择排序的基本思想是:第一趟在有n个数据元素的排序表中选出关键字最小的数据元素,然后在剩下的n-1个数据元素中再选出关键字最小(整个数据表中次小)的数据元素,依次重复,每一趟(例如第i趟,i=1,…,n-1)总是在当前剩下的n-i+1个待排序数据元素中选出关键字最小的数据元素,作为有序数据元素序列的第i个数据元素。等到第n-1趟选择结束,待排序数据元素仅剩下一个时就不用再选了,按选出的先后次序所得到的数据元素序列即为有序序列,排序即告完成。
4归并排序(两路归并排序)
两路归并排序的基本思想是:假设初始排序表有n个数据元素,首先把它看成是长度为1的首尾相接的n个有序子表(以后称它们为归并项),先做两两归并,得n/2上取整个长度为2的归并项(如果n为奇数,则最后一个归并项的长度为1);再做两两归并,……,如此重复,最后得到一个长度为n的有序序列。
程序的主要流程图
退出系统
输出排序结果
开始
直插
折半
冒泡
选择
快排
堆排
归并
选择排序方法
进入主菜单
程序的主要模块(要求对主要流程图中出现的模块进行说明)
程序的主要模块主要分为主菜单模块和排序算法演示模块。
1主菜单
主要功能:程序运行时,可使运行者根据提醒输入相关操作,从而进入不同的排序方法或者退出。
2排序方法及输出
根据运行者对排序的不同选择,进入排序过程
a.直接插入排序:根据直接排序的算法,输出排序过程
b.折半插入排序:根据折半插入的算法,输出排序过程
c.冒泡排序:根据冒泡排序算法,输出排序过程
d.简单选择排序:根据简单选择排序的算法,输出排序过程
e.快速排序:根据快速排序的算法,输出排序过程
f.堆排序:根据堆排序的算法,输出排序过程
g.归并排序:根据归并排序的算法,输出排序过程
程序的主要函数及其伪代码说明
1模板类
主要说明程序中用到的类的定义
templateclass typeclass sortlist
{
private:
int currentsize;//数据表中数据元素的个数
public:
type *arr;//存储数据元素的向量(排序表)
sortlist():currentsize(0){arr=new type[maxsize];}//构造函数
sortlist(int n){arr=new type[maxsize];currentsize=n;}
void insert(int i,type x){arr[i]=x;}
~sortlist(){delete []arr;}//析构函数
void swap(type x,type y)//数据元素x和y交换位置
{type temp=x;x=y;y=temp;}
void bubblesort();//冒泡排序
void quicksort(int low,int high);//快速排序
void insertionsort();//直接插入排序
您可能关注的文档
- 通报111技术总结.ppt
- 通病防治方案2技术总结.doc
- 数据分析绘图工具2技术总结.ppt
- 数据分析及SPSS软件技术总结.ppt
- 通道混合器详解--(通道混合器应用)技术总结.doc
- 数据管理与决策第一讲技术总结.pptx
- 数据交换共享整合系统平台技术方案技术总结.docx
- 软件开发过程题库.pptx
- 数据交换技术技术总结.ppt
- 通道混合器原理及应用技巧技术总结.doc
- 2025年领导干部“五个进一步到位”研讨发言材料.pdf
- 县委书记深入学习中央城市工作会议精神研讨发言材料+心得体会 2025.pdf
- 2025年 中央城市工作会议精神专题党课讲稿辅导报告+践行群众路线,厚植为民情怀,提升服务本领党课讲稿.pdf
- 2025党委党支部班子在“党的自我革命认识增强党性权力规范运行从严监督执纪落实管党治党责任”新五个方面问题学习教育对照查摆问题清单.docx
- 领导干部学习教育“不担当不作为推诿扯皮、政绩观偏差搞“面子工程、执行政策“一刀切”层层加码方面”等八个方面查摆问题清单整改措施.docx
- 2025年领导班子精神学习教育“不担当不作为、推诿扯皮”九个方面专题问题清单和整改方案.pdf
- 在“党的自我革命认识;增强党性;权力规范运行;从严监督执纪;落实管党治党责任五个方面问题深入学习教育个人对照查摆问题清单(党员干部、领导干部、年轻干部).pdf
- 6篇 学习贯彻2025年 在中央城市工作会议上重要讲话心得体会.pdf
- 2025年学习教育“回头看”存在问题及整改措施+领导班子专题“回头看”自查情况报告.pdf
- 2025年学习教育对照查摆问题清单(在从严监督执纪方面的问题、在落实管党治党责任方面的问题等新的五个方面).pdf
最近下载
- 2025CSCO非小细胞肺癌诊疗指南2025.docx
- 第二节+串并联电路中电流的规律(教学课件)物理鲁科版(五四学制)2024九年级上册.pptx VIP
- 电信研发工程师L1题库.xlsx VIP
- DBJD25-67-2019 甘肃省建筑与装饰工程预算定额地区基价 不含税 中册.docx VIP
- 水生态产品价值实现路径.pptx
- 学习解读《中华人民共和国反不正当竞争法》课件(2025年新修订版).pptx VIP
- 数据架构、应用架构、业务架构及技术架构4A架构设计方案.pptx VIP
- 组合式空调机组运行调试使用及维护.pdf VIP
- 工程类邀请招标文件参考模板.doc VIP
- 电力内外线课题六 配电线路设备.ppt VIP
文档评论(0)