


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言主流的排序算法效率分析及总结班级:计科二班日期:2016-3-29星期二作者:XXX工作:算法搜集及程序组合,结论总结。同组者:刘文工作:程序测试,时间记录以及程序演示这次我们组主要搜集了冒泡排序算法,简单排序算法,直接插入排序算法,希尔排序算法,堆排序算法,快速排 序算法六种常见的排序算法,并对它们的运行效率作了一个简单的测试与分析。A冒泡排序算法思想简单描述:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较 大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。冒泡排 序是稳定的。算法时间
2、复杂度:O(N2)下面我们来测试一下不同数据量的排序时间:这是200个乱序随机数:冒泡排序运行时间为 0.000000毫秒这是1000个乱序随机数:冒泡排序运行时间为 3.000000毫秒这是5000个乱序随机数:冒泡排序运行时间为 70.000000毫秒这是20000个乱序随机数:冒泡排序运行时间为 1464.000000毫秒从不同数据量的纵向分析来看,1,在冒泡排序算法里,随着数据量的增加,其运行时间也会越来越长。2,在两百个数据的时候,其运行时间少到忽略不计,即运算瞬间完成。这说明冒泡排序在处理小数据量的时候还 是很给力的3,当处理的数据量从 5000提到20000的时候,冒泡排序的运行
3、时间发生了质的增加。从几十毫秒到几千毫秒, 运行时间大大增加,从这里可见,冒泡排序在处理稍微大的数据的时候便已经显现出了力不从心感,我个人感 觉已不大适用。B简单选择排序算法思想简单描述:在要排序的一组数中,选岀最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的 数交换,如此循环到倒数第二个数和最后一个数比较为止。选择排序是不稳定的。时间复杂度:O(N2)下面我们依然来测试一下简单选择排序在不同数据量的运行时间:这是200个乱序随机数:简单选择排序运行时间:0.000000毫秒这是1000个乱序随机数:简单选择排序运行时间:2.000000毫秒这是5000个乱序随机数
4、:简单选择排序运行时间:44.000000毫秒这是20000个乱序随机数:简单选择排序运行时间:694.000000毫秒从不同数据量的纵向分析来看,1,其运行时间随着数据量的增加而增加2,简单选择排序同冒泡排序一样,在处理像200个这样的小数据量的时候,其运行时间可以忽略不计,即瞬间完成3,当数据量从5000提高到20000的时候,其运行时间也是提高了几十倍。C直接插入排序算法思想简单描述:在要排序的一组数中,假设前面(n-1) n>=2个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这 n个数也是排好顺序的。如此反复循环,直到全部排好顺序。直接插入排序是稳定的。算法时间复
5、杂度:O(N2)下面我们来简单测试一下直接插入排序在不同数据量下的运行时间:这是200个乱序随机数:直接插入排序运行时间:0.000000毫秒这是1000个乱序随机数:直接插入排序运行时间:2.000000毫秒这是5000个乱序随机数:直接插入排序运行时间:42.000000毫秒这是20000个乱序随机数:直接插入排序运行时间:684.000000毫秒从不同数据量的纵向分析来看:直接插入排序在想200个这样的小数据量的时候执行非常快,效率高。当数据量增加的20000的时候,运行时间会猛增几十倍,效率呈现下降趋势。D希尔排序算法思想简单描述:在直接插入排序算法中,每次插入一个数,使有序序列只增加
6、1个节点,并且对插入下一个数没有提供任何帮助。如果比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。希尔排序是不稳定的。希尔排序时间复杂度:O(N1.3)(平均)最好的 O(N)最差的O(N2)下面我们来简单测试一下希尔排序在不同数据量的运行时间情况:这是200个乱序随机数:3 ' E:崔.于龙 JiWt-EtiLqXfMiMu.exr 戏
7、卓世華批库讣钟 希:T 排x:u:i:E . " J. s i *< + *4,-i小 ' i i-11. q17045364 妙01I4&& 11569 11638 1&3121247627S221E&34901?5I ='4'J3181185455351612171!ISQI5ES3的昶1260«1&I2I191-=|E9402B3S 5952 勺19235717 沁D1:诚:?3'卩 12.-!1: JMG2E6247465=53101B1133472537 28734fi! 3&1
8、5 305S6656 朋43 TOSS T296 7331 7464ld22? 10244 102701C660 1130613421 13&16 1 曲 86 14IS6 1436476)3113501144302?11E3ZQ 1535K IfiSE LEfill IFH 程 15MH 1&L7D lfi«£ 1BB16 1BEBB 1646£3 14723 14907 149S3 150560 17035 17062 17074 1?168 17394 17457 t?5TS 17643 17&36 19060 18】嗣 LB4-31
9、 18597 18767 1B&92 1939& 严叫 71 M61519I&B7 K7B2 1W32 30081 20149 20295 2D3L 20S90 20554 血盟 20630) 2064S 20736210D9 21064 21530 边竝 21256 21284 31W2 21B0T 滋臨 52160 汀1虽 巧 抚:瘢 2S45 22S67 22604 32899 2EMS 23373 23412233 鉴2524.039 34337 2»4< 24W3 21921 24»S3 頭即E 25254 255P7 K324 2何
10、拥西昭E 37653 278®2S132 28310 28丹9 囲5悯 2®52 28854 凸U當 29灯5 2933? 29338 258 29537 29650 E&7O6 298&0' 30159 3025430 20& S03©& 30421 3Q5J0 凹更30SZ2 31356 312£5 319 吕 10 旳 3197S 3193& 昭2Q 3ZP95 3222& 3E315 <:2i33 3 244i 32528_ 32569 32?10帝駅松库运昕时问0-«000
11、00丼 E 卄;& 日* flhys;1*3*+*+n”w工1"*¥< 卄 5L4Ji !:*, I昌泡排序*+* *+*+ 简単埠繇備* 一 宜期畝Mt尉*+* 舄加不EWW仪卄 逍丰k序!沖"”屮耳齐半 快速排 丰扫呻IEtH1: 么出封卓电*<=*4+希尔排序运心=11 - 退出冒卄¥*事*>寸耳行时间为:0.000000毫秒这是1000个乱序随机数: 希尔排序的运行时间:0.000000毫秒 这是5000个乱序随机数:S It僱蚊皿-«r"- XiU!43 JuStOU上迫3WJ07Jut273
12、9;J'JZz JUtlJ SIMM JUt4D孔”44:D672 乱也取 JHb-4 Sibyl :J仁生3U?323U'f:二加T対 30740 20745307T2 M 疗閔勖刑自?ft762 50776 3073130735 307B53OS2S0&30 3 強巔?0313 3O3GIB曲阴 303813Q6S4 3QB93 3QWL 30肛330925 39937 3旧叩 30543 刃945 3QE巧 303309W 31QQQ 51C1510153弹231024 31&2531 DIE310&4 31Dffi 31072310123106?
13、 310&?含 1吋0 31092311 DO 3 Uc£ 訂Id白 SlUl 削'Li 31129 311K4 JllSi 911J+ JI 154 Ml站:11ol 3117- 31::SO 31182 311?4 31201.121. 312JO .1234 J1J53 :. 12KD 31S7S 31S78 3128& aifNfi S13M 3L3D1 313H 313S4 313S 31332 31237 31353 313S4 313S? 313&3 313«3 2JJ7 L 期恥 31397 时赧 31416 31+1? 31
14、4QG 31443 31 苗4 3却硏 314K 31169 3L4M 31472 31476 312 31 ID 31M1r-15.13t5?315223侔莎 <1F5?31硏2 汨血7 :吓届 :1EI3157:P1&7E31FR?3155S16011'1310233&28 31636 3t65« 316歆 91669 31&72 31C?8 31&B1 316S5 313 3l£M 21996 316&? 317ft0 3tTDS 31709 31721 pL7a5 3I7M 31767 317®0 21
15、7BS 3L744 5176 3:17M 21A10 S1BM 2LE13 31814 31S27 3LE41 313Ei 3105 319M 3 1866 018?0 31K74 31876 318? S1S79 31B9131999 33900 3L9»3 3190ft 31 潮 3t»12 31914 31903 3LB42 31B44 3)963 319U 3L»3 3K76 31V7» 31935 31K8 33001 3200* 32011 X2O13 32O2E 320E7 33Q37 32MI 12M3 330 p 32073 32077
16、 320T?B 32097 叢阳7 33103 32113 32119 32127 32137 S2163 3E1GS 32174 321G1 321K2 32185 8213 k 3Z1E7 32150 32157322013221b 3221B 32225322263ZZ34 S224T3Z254 3Z2b3 32254N&4 3227i 323OL 32303卫4 3_:314 3202? 8i32fc 328 (MM 理44乱担5 :2?託笑0 f剜抡纵 325 i 337?型品3论扯船鹑Lg 弗 913240432.7 託网 324U3211222112S2421314Z&g
17、t;3242132<31324443241 監口 E 監船 F 迎4 巧屈師牌4鮒 325QL 32512 冀函 3252& 33627 3231 3Z531 32常4 32546 32577 325TO 32PS6 3圖02 32W? 3K1Q 32&24 3 E62532631 理期 336 卸 32盟133期 3E&57335 32 昕 Q 吕 2563 緒讪 3J6723267 須 $阳耳茨 TT 32677326T3 32683 32702 327吗 32?ub 32708 33710 32?14 32743 扯阿:;y_ 空 32751 32?b2 :
18、63 32765+扎!t序运彳祁卫1 )0 DOO砒疋.;.堕 *=*2一 21隼埠更岸序”4=*“wr.宜农區蜜峥"彳申丐半車洛垃按序普事耳时半工希尔排序的*#+(5., -5i*4*=*4+运行时间:1.000000毫秒 这是20000个乱序随机数: 希尔排序的运行时间:5.000000毫秒从不同数据量的纵向分析来看:从200个到20000量的随机数,希尔排序运行的时间都是非常快的,效率极高。20000个数据的时候也仅仅只是5毫秒,这说明希尔排序在处理大数据的能力上非常优越。E堆排序算法思想简单描述:堆排序是一种树形选择排序,是对直接选择排序的有效改进。堆的定义如下:具有 n 个
19、元素的序列(h1,h2,.,hn),当且仅当满足(hi>=h2i,hi>=2i+1 )或(hi<=h2i,hi<=2i+1)(i=1,2,.,n/2)时称之为堆。在这里只讨论满足前者条件的堆。由堆的定义可以看岀,堆顶元素(即第一个元素)必为最大项。完全二叉树可以很直观地表示堆的结构。堆顶为根,其它为左子树、右子树。初始时把要排序的数的序列看作是一棵顺序存储的二叉树,调整它们的存储顺序,使之成为一个堆,这时堆的根节点的数最大。然后将根节点与堆的最后一个节点交换。然后对前面(n-1)个数重新调整使之成为堆。依此类推,直到只有两个节点的堆,并对它们作交换,最后得到有n个节点的
20、有序序列。从算法描述来看,堆排序需要两个过程,一是建立堆,二是堆顶与堆的最后一个元素交换位置。所以堆排序有两个函数组成。一是建堆的渗透函数,二是反复调用渗透函数实现排序的函数。堆排序是不稳定的。算法时间复杂度:O(nlog2n)。下面我们测试一下堆排序在不同数据量的运行效果:这是200个乱序随机数:堆排序运行时间:0.000000毫秒这是1000个乱序随机数:堆排序运行时间:0.000000毫秒这是5000个乱序随机数:堆排序运行时间:1.000000毫秒这是20000个乱序随机数:堆排序运行时间:4.000000毫秒从不同数据量的纵向分析来看:堆排序不禁在处理小数据的时候效率非常高,就算处理几万个数据,也几乎是瞬间完成。从200到20000个数据的运行结果来看,堆排序在处理大数据的能力上还是很强的。F快速排序算法思想简单描述:快速排序是对冒泡排序的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学科学三年级上册互动学习计划
- 砂石料回收利用的质量监管措施
- 公共服务工会的主要任务与责任
- 新工程师岗前培训心得体会
- 园林绿化工程实施进度与保障措施
- 医院护理礼仪培训课件
- 特别声明与工作证明书(7篇)
- 智能水文智能预警系统合同
- 企业后勤保障服务质量监控措施
- 中学生科普知识读物征文
- 肥胖症诊疗指南(2024年版)解读
- 麦收消防安全培训课件
- 《科普技巧常识》课件
- 2025年中国全电脑横机市场现状分析及前景预测报告
- 大型活动场馆停车管理方案与技术措施
- 医院基建管理试题及答案
- 2025年全国保密教育线上培训考试试题库及答案(夺冠)带答案详解
- 沪教牛津版(深圳用)英语五年级下册Unit-11-Chinese-festivals课件
- 2025-2030中国职业资格培训行业市场深度调研及竞争格局与投资前景研究报告
- 甘露特钠胶囊联合多奈哌齐片治疗轻中度阿尔茨海默病的疗效及肠道菌群影响
- 2025科技辅导员培训
评论
0/150
提交评论