下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常用排序算法分析比较论文导读:还要掌握解题的算法。应用冒泡排序法时。所以快速排序法属于不稳定性排序。利用直接插入排序法。直接选择排序法。关键词:算法,冒泡排序法,快速排序法,归并排序法,插入排序法,选择排序法引言我们在进行程序设计时,除了要掌握一门程序设计语言外,还要掌握解题的算法。算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。一切问题解决的过程都是有效数据组织的过程,是寻找、设计和实现算法的过程。排序是数据处理中的一项重要操作。要编制一个好的数据排序程序,就要有一个好的排序算法,既运算快又内存开销小。而所谓排序是将一组无序的数据按一定规律进行排列,使其成为有序序列。排序方法很多,应用
2、也很广泛。这里介绍几个常用的排序算法,并对此进行分析和比较。1冒泡排序法冒泡排序法是一个最简单的交换排序方法,它是利用相邻的两数据相互比较,如果前面数据比后面数据小,则将这两个数据交换位置(大气泡在小气泡上面),然后再以同样方法比较下两个相邻的数据,以此类推,直到所有数据都有序为止。其算法如下:void bubblesort(px a,int n)int I, j, bjh;px tmp;for (I=0;II;j-)if (ajtmp=aj;aj=aj-1;aj-1=tmp;bjh=1;if (bjh=0)return;应用冒泡排序法时,若数据已有部分排好序,则它可以很快速地完成排序,这也是
3、它的优点;但另一方面,它会反复扫描数据,比较相邻的两个数据,速度不快也没有效率,这是它不足的地方。从上述算法中也可以看出,相同的数值在排序过后其顺序和排序前的顺序是一样的,冒泡排序是属于稳定性排序。2.快速排序法快速排序法也是很有名且最常用的排序方法之一。也属于交换排序的方法。它的基本思想是通常取待排序的第一个记录,把该记录放入最终位置后,整个数据区间被此记录分割成两个子区间。所有关键字比该记录关键字小的放置在前子区间中,所有比它大的放置在后子区间中,并把该记录排在这两个子区间的中间,这个过程也称作一趟快速排序。这之后对所有的两个子区间分别重复上述过程,直到每个子区间内只有一个记录为止。论文检
4、测。快速排序算法如下:void quicksort(px a ,int s, int t)int I=s,j=t;px tmp;if (sI)j-;if (I=0 &tmp.keyaj+1=aj;j-;aj+1=tmp;从算法可以看出,利用直接插入排序法,最少比较n-1次,最多比较n(n-1)/2次,平均比较次数是n(n-1)/4次。插入排序过程中数据的位置不发生变化,它属于稳定的排序方法。5选择排序法选择排序是从待排序的数据中,按指定的规则选出某种元素,经过和其他元素重整,再依原则交换位置后达到排序的目的。它的基本思想是:把数据区划分成两个部分,即有序区和无序区;从无序区中选择关键字最小的记
5、录,将其添加到有序区的尾部;不断重复上述操作,直到无序区为空。其算法如下:void selectsort(px a ,int n)int I,j,k;px tmpfor (I=0;I=n-1;I+;) k=I;for (j=I+1;jn;j+)if(aj.keyk=j;tmp=aI;aI=ak;ak=tmp;直接选择排序法,其关键字的比较次数与各元素原来的排列顺序无关,但元素的移动次数和初始排列顺序有关,所以直接选择排序也属于不稳定排序法。结束语在程序设计中,排序的算法还有多种,上述是平时常用的几种排序算法,并用C语言给出算法描述。一般来说,我们常以算法执行的时间作为衡量算法优劣的主要指标。论文检测。不同的排序方法各有优缺点,可适用于不同的场合。比如,当n较小时(n50),可采用插入排序、选择排序或冒泡排序,这些排序方法比较简单;当n较大时,则采用快速排序、归并排序等;若待排序列的记录序列初始状态按关键字基本有序,则选用插入排序和冒泡排序效率最高。由于排序运算在计算机应用中经常使用,非常重要,深刻理解各种排序的基本思想和特点,熟悉排序过程,熟记各种算法的分析结果及分析方法对程序设计人员是很重要的。在实际应用中,我们可以根据实际问题的要求,选用合适的排
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年特定区域白酒销售代理合同
- 二零二五年度回迁房互换合同范本下载3篇
- 二零二五年度仓储储藏室租赁与冷链物流配送合同3篇
- 二零二五年度便利店员工离职补偿简易劳务合同范本2篇
- 二零二五年度合资项目投资融资合作协议书3篇
- 2024年股权变动代理协议
- 2024年股权出资转让协议:公司发展新篇章
- 2024版重型油罐车交易协议细则版B版
- 2025年度施工电梯安装与应急救援预案合同3篇
- 看图说话课程设计
- 政治经济学结构图解
- LORCH焊机简要操作说明书-v2.1
- 服装品质管理人员工作手册
- 国家开放大学电大专科《兽医基础》2023-2024期末试题及答案试卷编号:2776
- 煤气全分析,简、精两配方
- 初三毕业班后期管理措施
- 超星尔雅慕课公共关系礼仪实务杜汉荣课后习题及答案(1)word版本
- 示教机械手控制系统设计
- 氧化铝生产工艺教学(拜耳法)
- 选矿学基础PPT课件
- 安利食品经销商合同协议范本模板
评论
0/150
提交评论