排序算法比较系统实验报告.doc
《排序算法比较系统实验报告.doc》由会员分享,可在线阅读,更多相关《排序算法比较系统实验报告.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、排序算法比较系统一 项目计划书1. 项目的选题意义随着计算机科学技术的快速发展,排序成为了计算机程序设计中的一种重要操作。它在计算机图形、计算机辅助设计、机器人、模式识别及统计学等领域具有广泛应用。在实际应用当中比如数据统计等方面都会用到。而且对一组数据进行排序也方便了后面对数据查找的操作。要知道在一个有序数组中查找和在一个随机无序数组中的查找的时间复杂度和系统消耗是有天壤之别的。它的的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列。由于排序法很多,但就其全面性能而言,很难提出一种被认为是最好的方法,每一种方法都有各自的优缺点,适合在不同的的环境下使用。一般情况下,采
2、用不同的排序算法效率会不一样。因此,在不同的环境下选择相对效率最高的排序算法,能够有效加快工程实施的进度。为了方便大家了解不同排序算法的时间效率,特建立一种排序算法比较系统,实现比较不同排序算法效率的目的。2. 项目的主要内容和目标排序算法比较系统主要实现的下列十种功能:一简单选择排序;二折半插入排序;三直接插入排序;四冒泡排序;五希尔排序;六快速排序;七归并排序;八堆排序;九清屏;十退出系统; 3项目的技术基础、特点及实施的条件该项目可用C语言实现,适于在单机环境下运行。小组成员均已学习过C语言程序设计、数据结构、算法等课程,具有一定的开发能力。4.项目人员分工 所有人都参与了项目的选题、设
3、计、实现及测试工作,项目负责人归纳整理小组成员讨论成果,并确定最终方案。在实践阶段,按照功能模块具体分工如下: 项目组负责人:李齐,构建模型、设计算法、设计界面、实现功能二、四、五、六、七、十 项目组成员:刘运皇,初始化数据、实现功能一、三、八、九二 设计方案1. 算法思想的选择与设计 此项目来源于实际问题。通常,在排序的过程中需进行下列两种基本操作:(1)比较两个关键字的大小;(2)将记录从一个位置移动至另一个位置。待排序的记录序列可以用顺序存储结构进行存储,即待排序的一组记录存放在地址连续的一维数组中。在这种存储方式中,记录之间的次序关系由其存储位置决定,则实现排序必须移动记录。因为我们目
4、的要对一系列的正整数进行排序,因此选择顺序存储的方式简洁明了,易于让人理解。而在功能实现过程中,在排序算法比较系统中,要用到递归和分治的思想,以便于算法的设计与实现。我们用库函数来随机生成一系列的正整数,进而选择不同排序算法进行排序比较。其具体实现如下:#includesrand(unsigned)time(NULL); for(long i=0;i=2 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。此种算法流程图如图3。第四种功能是冒泡排序。其算法思想是在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻
5、的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。此种算法的流程图如图4。 第五种功能是希尔排序。其算法思想是算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。此种算法的流程图如图5。 第六种功能是快速排序。其算法思想是通过一趟扫描后,使得排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确位置,而待排序序列的长度可能只减少1。快速排序通过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 排序 算法 比较 系统 实验 报告
限制150内