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