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

11级信息安全数据结构课设电子档.doc

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

《数据结构与算法》 课程设计说明书 题 目: 组合排序 学 院: 计算机科学与工程学院 专 业: 信息安全 姓 名: 利物浦 学 号: 1125486524 指导教师: 杰拉德 2013年 09月13日 目 录 引言 1 1 系统概述 1 1.1系统流程图 2 需求分析 1 2.1 系统需求 1 2.2 开发环境 1 3 详细设计 1 4 所遇到的问题和分析解决 1 5 系统特色及关键技术 1 6 结论 2 参考文献 2 引言 随着计算机技术的发展,为了查找方便,通常希望通过排序使表是按键字有序的。排序在数据结构中是重要的一个部分,也是在实际开发中易遇到的问题,所以研究各种排序算法的时间消耗对于在实际应用当中很有必要通过分析实际结合算法的特性进行选择和使用哪种算法可以使实际问题得到更好更充分的解决!该系主要通过对各种内部排序算法,如:直接插入排序,快速排序,堆排序,归并排序,希尔排序等排序等 系统 当用户进入排序系统,系统在排序前要做何种提示,当用户使用完系统后如何退出该系统做了详细的流程分析和设计。完成了系统的流程设计,整个系统变得清晰,最后系统进入装配阶段,将系统的各个排序算法实现,不断的进行调试,修改。知道最后得出一个比较满意的排序组合排序系统。 2 需求分析系统需求 按回车键进入主菜单选择界面,这个界面选择你想要进行的排序算法,方便又明确,如图: 选择1进入直接插入排序并给出每一趟排序的结果,如图: 选择二进入希尔排序的算法并给出三趟排序的结果,如图: 选择3进入冒泡排序并看每一步冒泡排序的结果,如图: 在主菜单选择4进入快速排序并立即排序出结果,如图: 在主菜单选择5进入简单选择排序并查看每一步排序的结果,如图: 在主菜单选择6进入堆排序并查看每一步的排序结果,如图: 在主菜单选择7进入归并排序并立即查看到排序结果,如图: 在主菜单选择8进入基数排序并查看进行三趟排序每趟排序的结果,如图: 2.2 开发环境 Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,代号“Orcas”,是对Visual Studio 2005一次及时、全面的升级。   VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了AJAX 1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用。 3 详细设计 定义的结构体 typedef struct { int L[maxsize+1]; int length; }list; Maxsize是宏定义的数组个数最大值,”int length;”定义每次排序需要的空间长度。 直接插入排序法: 直接插入排序 基本原理:这是最简单的一种排序方法,它的基本操作是将一个记录插入到已排好的 有序表中,从而得到一个新的、记录增1的有序表。 效率分析:该排序算法简洁,易于实现。从空间来看,他只需要一个记录的辅助空间, 即空间复杂度为O(1).从时间来看,排序的基本操作为:比较两个关键字的大小和移动记 录。当待排序列中记录按关键字非递减有序排列(即正序)时,所需进行关键字间的比较次 数达最小值n-1,记录不需移动;反之,当待排序列中记录按关键字非递增有序排列(即逆 序)时,总的比较次数达最大值(n+2)(n-1)/2,记录移动也达到最大值(n+4)(n-2)/2.由于 待排记录是随机的,可取最大值与最小值的平均值,约为n2/4.则直接插入排序的时间复杂 度为O(n) 由此可知,直接插入排序的元素个数n越小越好,源序列排序度越高越好 (正序时时间复杂度可提高至O(n) )。插入排序算法对于大数组,这种算法非常慢。但是 对于小数组,它比其他算法快。其他算法因为待的数组元素很少,反而使得效率降低。插入 排序还有一个优点就是排序稳定。 直接插入排序的算法如下: void straight(list m) { int i,j,num=1; display(m); for(i=2;i=m.length;i++) { if(m.L[i]m.L[i-1]) { m.L[0]=m.L

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档