冒泡排序算法如何运行
为了实现冒泡排序算法,开发人员通常会写一个函数,然后在一个循环中写一个循环——内循环和外循环。当我向你展示 Python、C++ 和 Java 中的代码时,你会看到它的实际效果。
假设我们想对一系列数字 5、3、4、1 和 2 进行排序,使它们按升序排列……
排序开始的第一次迭代是比较前两个值。如果第一个值大于第二个值,算法就把第一个值推到第二个值的索引上。
排序的第一次迭代
第 1 步:在 5、3、4、1 和 2 的情况下,5 大于 3。所以 5 占用了 3 的位置,数字变成了 3、5、4、1 和 2。

第 2 步:算法现在有 3、5、4、1 和 2 需要比较,这一次,它比较了下两个值,即 5 和 4。5 比 4 大,所以 5 占用了 4 的索引,现在的值是 3、4、5、1 和 2。

第 3 步:算法现在有 3、4、5、1 和 2 需要比较。它比较下两个值,即 5 和 1。5 比 1大,所以 5 占用了 1 的索引,数字变成 3、4、1、5 和 2。

第 4 步:该算法现在有 3、4、1、5 和 2 需要比较。它比较下两个值,即 5 和 2。5 比 2 大,所以 5 占用了 2 的索引,数字变成 3、4、1、2 和 5。

这就是第一次迭代。现在数字从最初的 5、3、4、1 和 2 被排列成 3、4、1、2 和 5。正如你可能意识到的,如果数字按升序排列,5 应该是最后一个数字。这意味着第一次迭代真的完成了。
第二次迭代的排序和其余部分
该算法以 3、4、1、2、5 的最后结果开始第二次迭代。这一次,3 比 4 小,所以没有发生交换。这意味着这些数字将保持不变。

算法继续比较 4 和 1。4 比 1 大,所以 4 被换成 1,数字变成 3、1、4、2 和 5。

该算法现在开始比较 4 和 2。4 比 2 大,所以 4 被换成了 2,数字变成了 3、1、2、4 和 5。

4 现在在正确的位置,所以 4 和 5 之间没有发生互换,因为 4 比 5 小。

就这样,算法继续比较数字,直到它们按照 1、2、3、4、5 的升序排列。

冒泡排序算法的 Java 代码示例
要在 Java 中实现冒泡排序算法,你必须比在 Python 中写更多的代码。
这就是为什么我添加了注释,让你在执行的过程中了解这些步骤:
