冒泡 每次从0开始两两比较,直到length -1 最大值往后放
-- 两两比较,每次比较把较大值放后面,直到最后一次内循环,把最大值放到最后,
-- 第二次循环到length -1
// 从0位到倒数第一位开始遍历,因为每次内循环都要从0开始比较,即第一次内循环就会把最大的移到最后,因此每次只需要比较从0到i-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 tem = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tem; } } }
选择 外循环遍历每个数据,内循环从i+1开始遍历,直到最后一位,每轮循环把最小的往前放
for (int i = 0; i < array.length - 1; i++) { for (int j = i + 1; j < array.length; j++) { if (array[i] > array[j]) { int tem = array[i]; array[i] = array[j]; array[j] = tem; } } }