今天我们来讲一讲排序。选择排序是排序算法中最简单的算法之一。
假如我们要用选择排序算法给6个数从大到小排序,原理是这样的:
从第1位到第5位,给每个位置选择一个它和它之后的所有数字中最大的数字,来放在这位置上。当然,前5位都选择完之后,最后一位就是最小的数啦。
举例,对以下数字进行从大到小排序:
17 64 79 31 43 24
第1位选择后
[79] 17 64 31 43 24
第2位选择后
79 [64] 17 31 43 24
第3位选择后
79 64 [43] 17 31 24
第4位选择后
79 64 43 [31] 17 24
第5位选择后
79 64 43 31 [24] 17
最后排序结果 79 64 43 31
24 17
细心的小朋友就会发现,选择完第一个数的时候,后面的数字位置也变了!怎么回事呢?
那我们就要了解,细分到每个位置,如何给一个位置选择一个它和它之后所有数字中最大的数呢?
举例,假如要给第2位选择最大数,我们要把第2位上的数依次和它后面的每一个数字进行比较:
如果第2位上的数小于第3位的数,就把两个数字交换;如果第2位上的数小于第4位的数,就把两个数字交换;如果第2位上的数小于第5位的数,就把两个数字交换;如果第2位上的数小于第6位的数,就把两个数字交换。
第1位选择后
[79] 17 64 31 43 24
第2位与第3位比较 79 [64] [17] 31 43
24 交换
第2位与第4位比较 79 [64] 17 [31] 43
24 不交换
第2位与第5位比较 79 [64] 17 31 [43]
24不交换
第2位与第6位比较 79 [64] 17 31 43
[24] 不交换
Scratch选择排序程序(.sb2)及讲解(.docx):
链接:https://pan.baidu.com/s/1uHmEECdBjk9EDVSEpeIpcQ
提取码:cfmc

加载中,请稍候......