1、 如上图所示,冒泡排序还就是两个相邻的数字进行比较,把较大的那个数字往前排,第一次比较完之后就会确定一个最大的数字;
2、重复上述操作,但接下来的每一次比较都会减少一个数字,所以比较的次数也就会减少一次;
3、当只剩下两个数字的时候,只需要进行一次比较就可以了,所以比较的总次数是数字总数减去一次。
代码:
public class Main {
public static void main(String[] args) {
//定义一个int类型的数组 我们将对这个数组进行冒泡排序
int[] arr = {2,5,1,3,4,8,6,7};
//调用对数组进行排序的方法
bubbleSort(arr);
}
private static void bubbleSort(int[] arr){
//外层的循环表示比较的次数,如果有n个数字,就需要比较n-1次
for (int i = 0; i < arr.length - 1; i++) {
//对数组进行遍历,相邻的两个数字进行比较,每次比较之后数字总数就会减一防止索引越界,让长度减一
for (int j = 0; j < arr.length - 1 - i; j++) {
//判断每两个相邻的数字,大的往前排
if (arr[j] >= arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//打印数字
printArr(arr);
}
private static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}



