每次和后面比较交换 将最大值交换到最后 进行n-1次循环
public static void main(String[] args) { //随机几个数 int[] arr = new int[10]; for(int i = 0; i < 10; i++) { arr[i] = (int)(Math.random() * 100); } //System.out.printf("arr sort before:" + Arrays.toString(arr) + "\r\n"); sort(arr); //System.out.printf("arr sort after :" + Arrays.toString(arr)); } //开始冒泡 private static void sort(int[] arr) { if(arr == null || arr.length == 0) { return; } int len = arr.length; for(int i = 0; i < len - 1; i++) { for(int j = 0; j < len - 1-i; j++) { if(arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } //System.out.printf("arr sort time"+i+" :" + Arrays.toString(arr) + "\r\n"); } }输出