免费论文查重: 大雅 万方 维普 turnitin paperpass

简述C语言中冒泡排序算法优化

最后更新时间:2024-01-07 作者:用户投稿原创标记本站原创 点赞:3393 浏览:8325
论文导读:
摘 要 排序是计算机程序设计语言中常见的内容,其中冒泡排序一般是以大数往后沉的方式来实现。传统的做法会出现大量的无效操作,造成资源的浪费,经过一定的改善后,这样的算法效率得以提高。从其本质特点出发,进而分析其特点得出更为高效的优化方式。
关键词 算法;冒泡排序;优化
1671-7597(2013)19-0166-01
数学中的数值大小在计算机中经常需要按规律排列,传统算法有冒泡排序法和选择排序法两种。其中数冒泡排序法较为经典。本文从传统策略的冒泡排序入手,对其进行常见的改善算法分析比;最后提出一种比较更为合理的优化算法。
1 传统的冒泡排序及改善

1.1 传统的冒泡排序

1.2 优化后的冒泡排序

上述1.1中的算法简单、容易理解,但有很多情况下它都有几趟排序是不会有任何的操作。为了避开这种情况一些专家和学者提出使用一个标记变量来解决,即当排序不发生任何数据交换时就立即停止;这样的解决办法即避开了无效的重复排序,又避开了有限资源的浪费。
2 一种提高100%效率的优化算法——同时前后冒泡
需要注意的是将上述程序段增加到1.1节中程序的第17行下方,然后从第12行开始到这里的结束部分总起来用一个大括号括起来,做为程序第11行循环的循环体。程序段中使用了变量m,它和在程序第19行中的变量是同一个,但含意完全不一样,这里用来表示是从程序的最后开始执行;而第19行中的表示是循环制约变量;只不过前面用过就不在需要它的值,所以这里可以重新赋初值来使用。
将上述测试数据输入测试,大家就会发现算法的有效循环执行了2次,到了第3次跳出;这是怎么回事情呢?这样的优化是如何工作的呢?
3 同时前后冒泡有效性分析验证
从上面两张表的对比得出,在这样的数据序列下,比原来的改善算法效率提高了50%。假定每个数在的位置,C语言中的冒泡排序算法优化论文资料由论文网www.7ctime.com提供,转载请保留地址.在每一趟比较以后都不在应该的位置上即都是无序的(排列好的除外);那么表1中第1趟只能排好105,而表2中则排好了15和105两个位置,效率可见提高了一倍;以此类推效率提高100%。而这里我们的测试数据在表一中的第一趟已经把38,41,52,54,99,105共6个数排好,固效率无法提高一倍,这是测试数据后面几个数已经从小到大排好造成的,跟我们的立论不冲突。
由此可见,本文提出的算法是有效的。
参考文献
[1]黄福员,聂瑞华.冒泡排序算法的改善[J].华南师范大学,微机发展,2003(11).
[2]淦艳,杨有,余平.冒泡排序算法及其改善算法的实验分析[J].重庆三峡学院学报,2011(3). 全文地址:www.7ctime.com/yuyinxuelunwen/lw9799.html上一论文:浅谈动态的语言吸引人