内容正文:
江西信息科技 五年级下册
4
1
情境描述
2
探究一:生活中的排序
3
探究二:用排序算法对商品销量进行排序
总结提升
PART 01
情境描述
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
提到排序你能想到什么呢?
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
排序与我们的学习生活息息相关,例如,试卷和答题卡按从小号到大号的顺序来整理、各类比赛按成绩的高低来排名等。
其实,利用计算机排序也是极为重要 经常要做的一项工作,在许多算法和应用 系统中都离不开排序。
5
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
商店商品日销量表
商品 日销量 单位
笔记本 15 本
卷笔刀 6 个
荧光笔 24 支
橡皮 18 个
签字笔 30 支
书包 9 个
假设某商店6类商品的日销量如下表所示,现在要对这些商品按日销量从小到大进行排序,可以使用什么方法呢?
PART 02
探究一:生活中的排序
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
在日常学习生活中,你在哪些事情上使用过了排序算法呢?请至少列举3个例子。
01
02
03
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
人工排序和使用计算机排序哪个效率更高呢?是否有限定条件?
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
在日常生活中,我们经常可以看到各种排行榜,如销量排行榜、关注度排行榜、流行歌曲排行榜、球队实力排行榜等。
在数据量小的情况下,采用人工排序,简单目测一下就可以得出排序结果。但实际上大部分情况下的排序数据可能会是成千上万条,因此,采用人工的方式会耗时多,且容易出错。若采用合理的算法思想,利用计算机编程实现后,系统就可以对大量数据进行自动排序,省时省力,且只要程序正确,基本不会出错。
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
排序是数据处理和分析中常用的运算之一,它往往可以提高数据处理的效率;排序也是基本的算法之一,其他很多算法都是以排序算法为基础,所以研究和掌握排序算法是非常重要的。
PART 03
探究二:用排序算法对商品日销量进行排序
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
请使用排序算法对商店商品的日销量一列,按从小到大进行排序,并填写在下表中。
商品 日销量 单位
商店商品日销量表
商品日销售数据排行表
排序
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
请把你的排序过程描述出来。
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
如何将表中的商品日销量按从小到大的顺序进行排序呢?
小蓝提出了一个解决思路:在未排序的商品销售数据中找到价格最高者放在序列的最上面,这样未排序的商品销售数据就会减少1个。若干次后,当未排序的商品销售数据只剩下1个时,排序就完成了。
根据这个思路,小蓝尝试用“比较一交换”的方法将表中的商品日销量按从小到大进行排序。
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
小蓝“比较——交换”的方法:
第一次从未排序数列中找到最大值30,放在最上方。
第二次从未排序数列中找到最大值24,放在30的下方。
第三次从未排序数列中找到最大值18,放在24的下方。
第四次从未排序数列中找到最大值15,放在18的下方。
第五次从未排序数列中找到最大值9,放在15的下方。
第六次从数列中拿出最后一个值6,放在9的下方。
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
什么是冒泡排序?冒泡排序的基本思想是什么?
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
冒泡排序的第一轮:
第一次排序;将15与6比较,因为15>6,所以交换位置;
第二次排序:将15与24比较因为15<24所以不交换位置;
第三次排序:将24与18比较因为24>18所以交换位置;
第四次排序;将24与30比较因为24<30所以不交换位置;
第五次排序:将30与9比较因为30>9所以交换位置;
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
至此,第一轮一共比较了5次,将6个数中的最大数30交换到了最上面,得到了“6、15、18、24、9、30”的序列。
第一轮排序示意图
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
这称为冒泡排序过程的“一轮”。第一轮结束,最大的元素就被交换到了最上边,重复以上步骤 n-1 轮,所有的元素就按照从小到大的顺序排列好了。
由于在排序过程中总是小数往下放,大数往上放,相当于气泡往上升,所以称作冒泡排序。
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
第一轮排序成功后,按照上述的思路,你能把第二轮的排序过程写出来,并画出排序示意图吗?
01
02
03
04
05
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
第二轮排序示意图
思考:该序列的后半部分已经有序了,还需要进行比较吗? 比如24与30。
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
在每一轮排序后,记录一下最后一次元素交换的位置,那个位置就是无序序列的边界,再往上就是有序序列了,不参与之后的比较,所以每一轮会少比较一个元素。
已经冒泡到顶端成为有序序列后,就不再参与以后的比较啦
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
那么,其实第二轮排序就只要比较4次就可以把第二大的数字24冒泡上去,得到“6,15,18,9,24,30"的序列。
以此类推,我们就可以得到第三轮、第四轮、......的冒泡排序结果,直至得到最终的有序序列,这样就完成了排序,你学会了吗?
PART 04
总结提升
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
排序是指将一些数据根据特定的序关系排列成递增或递减的顺序(也称升序或降序)。
早在计算机出现之前,排序就已经被人们在实际生活中使用。人们可以通过“看一眼”“扫一遍”的方式对两个数据快速分辨大小,因此可以在较短的时间内对有限的数据快速地进行排序。
而计算机只有通过比较才能够分清两个数(在计算机中不仅仅指数值数据)的大小,从而在排序时要进行反复的比较和交换,但由于计算机具有高速运算的能力,因此面对大数据量时就比人显得更有优势。
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
两两比较大小交换位置,其实是一种基于交换的排序,即冒泡排序。
它的基本思想是:从下往上比较相邻的元素如果下面的比上面的大,就交换位置,将较大的数放在上面;直至最上一层。以上步骤重复N-1轮,就能将所有元素按照从小到大的顺序排列好了。
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
1.冒泡排序算法的优缺点是什么?
冒泡排序算法
优点
缺点
6666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
1.冒泡排序算法的优缺点是什么?
冒泡排序算法
优点 简单直观
缺点 不断地两两比较,效率低
2.请使用冒泡排序算法将商品日销量按从大到小进行排序。
谢谢
Lavf59.14.100
$$