整体:冒泡排序:比较两个数大小,第一个数大就交换位置
思路:第一次比较,五个元素需要比较四次
第二次比较,确定了最大值,4个元素只需要比较3次
第三次比较,确定了次大值,3个元素只需要比较2次
第四次比较,确定了最大值,2个元素只需要比较1次
分解理解
逐步进行排序,最后整合
/*
冒泡排序:比较两个数大小,第一个数大就交换位置
思路:第一次比较,五个元素需要比较四次
第二次比较,确定了最大值,4个元素只需要比较3次
第三次比较,确定了次大值,3个元素只需要比较2次
第四次比较,确定了最大值,2个元素只需要比较1次
* */
public static void text7() {
int[] arr = {36, 27, 42, 35, 19};
//第一次比较
for (int i = 0; i < arr.length-1; i++) {
//判断两个数大小
if (arr[i]>arr[i+1]){
int num = arr[i+1];
arr[i+1] = arr[i];
arr[i] = num;
}
}
System.out.println("第一次比较:");
System.out.println(Arrays.toString(arr));
//第二次比较
for (int i = 0; i < arr.length-1-1; i++) {
//判断两个数大小
if (arr[i]>arr[i+1]){
int num = arr[i+1];
arr[i+1] = arr[i];
arr[i] = num;
}
}
System.out.println("第二次比较:");
System.out.println(Arrays.toString(arr));
//第三次比较
for (int i = 0; i < arr.length-1-1-1; i++) {
//判断两个数大小
if (arr[i]>arr[i+1]){
int num = arr[i+1];
arr[i+1] = arr[i];
arr[i] = num;
}
}
System.out.println("第三次比较:");
System.out.println(Arrays.toString(arr));
//第四次比较
for (int i = 0; i < arr.length-1-1-1-1; i++) {
//判断两个数大小
if (arr[i]>arr[i+1]){
int num = arr[i+1];
arr[i+1] = arr[i];
arr[i] = num;
}
}
对代码的整合:
public static void text7() {
int[] arr = {36, 27, 42, 35, 19};
int num = 0;
//五个元素第一次比较需要比较4次
for (int i = 0; i < arr.length; i++) { //i = 0 ,表示循环的次数
for (int j = 0; j < arr.length - 1-i; j++) { //j = 0
//两两比较数组的元素
if (arr[j] > arr[j + 1]) { //arr[0]= 36 > arr[0+1] = 27
num = arr[j + 1]; // num = 27
arr[j + 1] = arr[j]; //arr[1] = 36
arr[j] = num; //arr[0] = 27
}
}
}
System.out.println(Arrays.toString(arr));
}