java冒泡算法排序的代码实现如下:
import java.util.Arrays; public class BubbleSort { public static void main(String[] args){ int[] arr = new int[]{2,3,7,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+1]; arr[j+1] = arr[j]; arr[j] = temp; } } System.out.println("第"+(i+1)+"次循环之后:"+Arrays.toString(arr)); } } }
控制台的输出如下:
第1次循环之后:[2, 3, 1, 7] 第2次循环之后:[2, 1, 3, 7] 第3次循环之后:[1, 2, 3, 7]
代码使用了一个外循环陷套一个内循环的形式,数组的长度是4,外循环循环了3次,
第1次循环之后,把第1最大值放到数组的最后第1位,
第2次循环之后,把第2最大值放到数组的最后第2位,
第3次循环之后,把第3最大值放到数组的最后第3位,
自然而然,不用再循环,第4最后值就会放到最后第4位了,所以外循环只用循环3次就可以了。
内循环时,每次只比较相邻两个数值,把较大值置后,较小值置前,
第1次外循环时,内循环要把最大值放到最后,所以要比较4个数值,内循环3次就可以了,
第2次外循环时,不用比较最大值,因为它已经放到最后了,所以要比较3个数值,内循环2次就可以了,
第3次外循环时,只用比较两个数值,内循环1次即可。