小小程序员入门
积木编程课程(2)冒泡排序
内容简介
一个班级的小朋友要排队伍,要求从矮到高排列。已知5个小朋友的身高分别是135cm,145cm,142cm,137cm,140cm,请给他们排队伍吧。
算法简介
冒泡排序算法的原理如下:
1,比较相邻的元素。如果第一个比第二个大,就交换它们两个。
2,对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3,针对剩余的元素重复以上的步骤,直到没有元素剩余。
冒泡排序动画演示:
给5个小朋友的身高从矮到高排队,他们的身高分别是135cm,145cm,142cm,137cm,140cm。
模拟计算机执行的过程,我们看看是怎么实现"冒泡"排序的。
第1次循环
135 145 142 137 140 比较,无需交换
135 145 142 137 140 比较
135 142 145 137 140 交换
135 142 145 137 140 比较
135 142 137 145 140 交换
135 142 137 145 140 比较
135 142 137 140 145 交换
第2次循环
135 142 137 140 145 比较,无需交换
135 142 137 140 145 比较
135 137 142 140 145 交换
135 137 142 140 145 比较
135 137 140 142 145 交换
第三次循环
...
第四次循环
...
结束
编程实现
创建身高队列。
![55bd276e6e148e8d9eff1809b2cd2dc3.png](https://i-blog.csdnimg.cn/blog_migrate/5c208c9c8cbe37b186d79ec42c9a217a.jpeg)
创建第一个循环,冒泡排序中的循环次数,即对同学队列做几次循环排列。
![a2745710965562309502e82e13cd75d2.png](https://i-blog.csdnimg.cn/blog_migrate/bb993ddf287eb7c0e647acba38ce6d54.jpeg)
创建空白函数,并添加一个入参,命名为:比较身高并交换两个同学的位置。
![fe5e7b5d787e8845c7f6ab0d21013e3a.png](https://i-blog.csdnimg.cn/blog_migrate/d9f061b13b7f91ec12c26f93d1fad9bb.jpeg)
加入第二个循环,每次比较相邻的两位同学的身高,并为他们排好队伍,直到排到循环中的最后一位同学。此外,在循环中调用函数"比较身高并交换两个同学的位置",输入参数为第二次循环的变量"j"。