多种排序方式 —— 待补充

以 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] ,除了第一个数外的其它数值都固定住了,显然第一个数就是最小的那个数了。因此,我们的冒泡排序就到此结束了。


待补充

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章