微信扫一扫
分享到朋友圈

【每天学点编程小知识】什么是冒泡算法

作者:有渔 来源:有渔 公众号
分享到:

01-23

1月16日上午,教育部新闻发布会上,介绍了《普通高中课程方案和语文等学科课程标准(2017年版)》的有关情况。在此次“新课标”改革中,正式将人工智能、物联网、大数据处理、算法、开源硬件项目设计等正式划入新课标


也就是说,从2018年秋季开始,高中生课程就会更与时代接轨了,人工智能,大数据这些都是未来的主流,算法更是计算机思维的基础。


日后,就由我来和你们讲解计算机中各种算法。在程序设计中,算法有千千万万,但是最基础最好实现的,就是今天的主题:冒泡算法。


冒泡算法

可能很多人会好奇冒泡算法究竟是怎样一种算法。

就像在水中冒出的气泡一样,因为包含的空气多,会被一直挤到水面上。

冒泡算法其实在现实生活中是一种比较少见的排列方法,但是在计算机语言中最方便实现。

用冒泡排序让晓组织的成员从矮到高依次从左往右排成一排

冒泡算法思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。

第一题:三个数{5,1,6},在冒泡算法对其进行排序,就会出现下面的情况:

第一轮:

5和1进行比较,5比1大,数组变成{1,5,6};

因为5和1进行了位置互换,所以继续比较5和右边数的大小;

5和6进行比较,5比6小,位置不变,数组为{1,5,6}

第二轮:

5和6进行比较,5比6小,位置不变,数组{1,5,6}

为什么5和6比较了两轮?

因为冒泡排序中,第一轮排序是从第一个数字开始的;而第二轮排序是从第二个数字开始一直比较到最后。


可能你们会说,这太简单了,那么来复杂一点的。给出一个数组{1,7,5,4},进行冒泡排序。

第一次排序

比较1和7,1比7小,所以1的位置不变,数组为{1,7,5,4};

比较7和5,7比5大,所以7和5交换位置,变成{1,5,7,4};

比较7和4,7比4大,所以7和4交换位置,变成{1.5,4,7};

第一轮排序结束了,可能会有人说,5比4大,这冒泡排序不科学啊!

因为冒泡排序还没有结束,刚才我们排序是从第一位开始比较的,现在要比较第二个数字。

第二轮排序

比较5和4,5比4大,所以5和4交换位置,变成{1,4,5,7};

比较5和7,5比7小,所以5和7位置不变,数组为{1,4,5,7};


可以看出,第二趟排序比第一趟排序少了第一步1和5的比较,冒泡排序每一次排序都会排出一个最大(小)作为首数字


因此,我们的冒泡排序还没有结束,

第三轮排序:

比较5和7,5比7小,所以5和7位置不变,数组为{1,4,5,7}

因为一共只有4个数字,7没办法继续和后面的数字进行对比了,所以冒泡排序到此为止。


冒泡排序就是这样一种每一轮排序会选出一个首数字(最大或最小),然后进行数组长度-1轮排序的算法。

当然在程序中,是不需要自己来进行冒泡排序操作的,只需要写好程序代码就可以让数字自动进行排序了!你所需要理解的,只是这种算法的原理。

快,点右下角阅读原文关注这个公众号,一起涨姿势!

阅读1
知识 
举报0
关注有渔微信号:Youyu_Edu

用微信扫描二维码即可关注
声明

1、头条易读遵循行业规范,任何转载的稿件都会明确标注作者和来源;
2、本文内容来自“有渔”微信公众号,文章版权归有渔公众号所有。

评论
更多

文章来自于公众号:

有渔

微信号:Youyu_Edu

邮箱qunxueyuan#163.com(将#换成@)
微信编辑器
免责声明
www.weixinyidu.com   免责声明
版权声明:本站收录微信公众号和微信文章内容全部来自于网络,仅供个人学习、研究或者欣赏使用。版权归原作者所有。禁止一切商业用途。其中内容并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现头条易读网站上有侵犯您的知识产权的内容,请与我们联系,我们会及时修改或删除。
本站声明:本站与腾讯微信、微信公众平台无任何关联,非腾讯微信官方网站。