多种排序方式 —— 待补充

以 3,2,1,5,4 为例

一、冒泡排序

框住的两个数就是被比较的两个数,小数要在左边,大数要到右边去。

1. 第一轮,选出最大值

(1)【 3,2】,1,5,4

因为 3 > 2,所以 2 移动到 3 的左边

(2)2,【 3,1】,5,4

因为 3 > 1, 所以 1 移动到 3 的左边

(3)2,1,【 3,5】,4

因为 3 < 5,所以不需要移动

(4)2,1,3,【 5,4】

因为 5 > 4, 所以 4 移动到 5 的左边

至此,第一轮比较已经结束,总共进行了4次比较。我们可以看到,现在的排序状态是 [2,1,3,4,5]。最大值 5 已经被成功地“运输”到了最右边,因此,我们只需要比较前面的四个数,找出第二个最大值,并将其“运输”到倒数第二个位置。

2. 第二轮

红色的数字代表已经被固定

(1)【2,1】,3,4,5

因为 2 > 1,所以 1 移动到 2 的左边。

(2)1,【2,3】,4,5

不变。

(3)1,2,【3,4】,5

不变。

至此,第二轮比较结束,总共进行了 3 次比较。我们可以看到,现在的排序状态是 [1,2,3,45]。4 在这个时候已经处于 倒数第二个位置。其实我们肉眼看上去已经排序完毕了,但是计算机是不会察觉的,它只知道,此时倒数第二个数一定是第二大的,因此我们的冒泡排序还是要继续进行。

3. 第三轮

(1)【1,2】,3,45

不变。

(2)1,【2,3】,45

不变。

至此,第三轮比较结束,总共进行了 2 次比较。我们可以看到,现在的排序状态是 [1,2,345]。倒数第三个数成为第三大数值。

3. 第四轮

(1)【1,2】,345

不变。

至此,第四轮比较结束,总共进行了 1 次比较。此时数列的状态是 [1,2345] ,除了第一个数外的其它数值都固定住了,显然第一个数就是最小的那个数了。因此,我们的冒泡排序就到此结束了。


待补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值