选择排序和冒泡排序的区别,使用分辨方法

算法,在编程里面是很重要的。最近文章给大家介绍了两种排序方法,一个是冒泡排序,一个是选择排序。发现不少的同学会把这个算法搞混,今天我们就再来巩固下这两种算法的知识点,看下选择排序和冒泡排序的区别:

选择排序和冒泡排序的区别

选择排序和冒泡排序的区别

冒泡排序的原理是:

比较邻的两个数的大小,如果顺序错了,就交换位置。顺序没错,就不用交换。对每一对相邻元素做同样的工作,从后往前或者从前往后都可以。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到么有任何一对数字需要比较。

选择排序的原理是:

每一次从排序的数据元素中选出最小(或最大)的一个元素,将这个数字交换至最左边,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。

选择排序和冒泡排序举例:

原始数据:[45, 489, 12, 160, 63]

冒泡排序:(从大到小排序)

第一轮数据(比较4次)

[45, 489, 12, 160, 63] 第1次

[45, 489, 160, 12, 63] 第2次

[45, 489, 160, 12, 63] 第3次

[489, 45, 160, 12 , 63] 第4次

第二轮数据(比较3次)

[489, 45, 160, 63 , 12] 第1次

[489, 45, 160, 63 , 12] 第2次

[489, 160, 45, 63 , 12] 第3次

第三轮数据(比较2次)

[489, 160, 45, 63 , 12] 第1次

[489, 160, 63 45 , 12] 第2次

第四轮数据(比较1次)

[489, 160, 63 45 , 12] 第1次

选择法排序(从大到小排序)

[489, 45, 12, 160, 63] 第1轮

[489, 160, 12, 45, 63] 第2轮

[489, 160, 63, 45, 12] 第3轮

[489, 160, 63, 45, 12] 第4轮

选择排序和冒泡排序的区别

(1)冒泡排序是比较相邻位置的两个数,而选择排序是按顺序比较,找最大值或者最小值;

(2)冒泡排序每一轮比较后,位置不对都需要换位置,选择排序每一轮比较都只需要换一次位置;

(3)冒泡排序是通过数去找位置,选择排序是给定位置去找数;

(4)两种方法都能实现排序,循环的次数也一样。

(5)区别是“冒泡排序”每次内层循环比较后,都修改列表中的数值顺序。而“选择排序”每次内层循环后,只是记录了最大值的位置。只有内层循环结束后,才将记录的最大值与外层循环的当前值做比较。发现最大值与当前值不一样,才改变列表中数值的顺序。

(6)显然“冒泡排序”更容易理解,适合编程入门,处理少量数据的时候。“选择排序”难度略高,适合有一定编程基础,处理大量数据的时候。

选择排序和冒泡排序的分辨方法:

两种排序方法快速分辨也很容易,“选择排序”里面有一个用于存储最大值位置的变量,没有就是“冒泡排序”。

选择排序和冒泡排序相关重要知识点:

scratch选择排序算法

scratch用冒泡排序,实现数字从大到小排序

scratch冒泡排序算法

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

scratch外观指令有哪些,分别有什么作用

2023-4-28 9:44:56

综合资讯

scratch中角色怎么复制,scratch角色复制的方法步骤

2023-4-28 9:45:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索