代码及讲解如下:
package com.xiaoye.array;
import java.util.Arrays;
public class 冒泡排序 {
public static void main(String[] args) {
int[] nums = {1, 23, 2, 3, 33, 25, 6, 5, 89, 737, 342, 62};
int[] result = sort(nums); // 调用 自己的排序方法
System.out.println(Arrays.toString(result)); // 将数组转换为字符串输出
}
// 冒泡排序:拿相邻的两个数相比较大小然后交换位置,通过若干轮比较,产生有序序列
public static int[] sort(int[] array) {
int temp = 0; // 临时变量,用于交换
boolean flag = false; // 标志:若在某一轮比较中没有产生交换,则证明数组已经有序了,则无需进行接下来的每轮比较
// 外层循环规定比较多少轮
// 有array.length个数,每走一轮找出一个最大的,下次比较就可以少比较一次
// 走完array.length-1轮后,找出来了array.length-1个,剩下一个就是最小的了,所以n个数只需要走n-1轮
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j] > array[j + 1]) {
temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag = true;
}
}
if (!flag) // 判断本轮是否产生交换
break;
}
return array;
}
}
运行结果展示:
——————————————————————
————————————
————
__



