排序 从小到大进行排序
例如:int[] arr = {1,27,3,5,38,23,67}=>{1,3,5,23,27,38,67}
比较相邻的两个元素,如果第一个元素比第二个元素大,就交换一下位置即可,每一对相邻的元素,都要做同样的工作,从开始的第一对到结尾最后一对,最后的元素应该是最大的。
import java.util.Arrays;
/**
* 冒泡排序
*/
public class Demo {
public static void main(String[] args) {
int[] arr = new int[]{1,5,3,4};
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;
}
}
}
System.out.println("从小到大进行排序:" + Arrays.toString(arr));
}
}
分析:
i = 0 0< 3
进入到第二层for循环
* j = 0 0 < 3 arr[0] > arr[1] false 不用交换位置 j++
* j = 1 1 < 3 arr[1] > arr[2] true 交换位置 j++
* j = 2 2 < 3 arr[2] > arr[3] true 交换位置 j++
* j = 3 3 < 3 false 内层循环结束 i++
i = 1 1 < 3
进入到第二层的for循环
* j = 0 0 < 2 arr[0] > arr[1] false j++
* j = 1 1 < 2 arr[1] > arr[2] false j++
* j = 2 2 < 2 false 内层for循环结束 i++
i=2 2 < 3
进入到第二层的for循环
* j = 0 0 < 1 arr[0] > arr[1] false j++
* j = 1 1 < 1 false 内层for循环结束 i++
i=3 3<3 false 循环结束