少儿编程C++第二季——10、冒泡排序中传之找个人来做老大
学习目标:
1、通过轮轮询比较找出数组中元素的最大值
2、加深对数组和算法的理解
各位小伙伴大家好,本期的内容只有一个,就是找出数组元素中的最大值。
按照惯例我们还是来分部实现,我总认为事出必有因,也习惯步步为营。
少儿编程不是成人的IT培训的复制品,它有自己的特点和目标。
所以我将保持一贯以来的课程风格——“大事化小,小事化了”。
先来看看如何得到两个元素之中的最大值。
请注意看第6行,这里新建了一个额外的变量。不要问为什么要这样做,也不要问怎么想到的这种办法。
这就是一种普通的方法,我们要做的就是学会它。学会它了,它就是你的。
就好像折千纸鹤,你学会了就可以了,至于怎么设计一种新方法来折一个有四条腿的千纸鹤,那是在你学会了这个基本方法之后,才应该去考虑的事
那么第6行中,新建的变量用来干嘛呢?
用来当做一个笔记本,把两个数据元素中较大的那一个抄一份存档,仅此而已。
非要说算法的话,那核心就是第8行的if语句。
如果a[0]也就是第一个元素 比a[1]也就是第二个元素大。
那么变量Max就把a[0]的值抄下来当做自己的值,然后保存。
否则,也就是a[1]>a[0],所以较大的那一个是a[1],那么Max就把a[1]的保存起来。
这是一个基础,希望大家一定理解。
那么接下是找出三个元素中的最大值,它和上面的方法有所不同。
其中核心的不同就是在第6行,上面的是int max,而这里我们用的是int Max=a[0]。
差异不大但思维却迥然不同,这里我们初始化了Max,让它默认将第一个元素保存为最大值。
它的算法就是,一次和后面的元素进行比较。
如果其他元素比变量Max中保存元素值大,那么就将Max中原来的元素擦掉,换上当前比较的元素,就是代码中的第10、11行。
这里的三个元素和下面比较十个元素在是算法上没有核心的区别,一起来看看。
所不同的是,这里的十个元素需要用户自己输入。
至于获取元素中的最大值,无非是将上面的i<3改成i<10。
也就是说上面比较3次,而下面比较了10次。
这个算法对初中及以上同学来说是不难理解的,但必须建立在对C++代码比较熟悉的基础上。
本期的学习内容就为大家介绍到这里,对于前面谈到的少儿编程和成人IT培训的区别我这里就不扩展了。
以后有机会我们在直播课程中再和大家一起聊。
同时欢迎你点击下方链接进入我们的scratch直播课堂。
我们在下期第一个真正意义上有名的算法“冒泡算法”中再接着聊,再会。
声明:本文章由网友投稿作为教育分享用途,如有侵权原作者可通过邮件及时和我们联系删除:freemanzk@qq.com