其实冒泡排序的核心就是相邻两个数进行比较,N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数
即:
1 for(int i = 0; i < arr.length - 1; i++){ 2 3 for(int j = 0; j < arr.length - 1 -i;j++){ 4 5 //交换位置 6 7 }
以下是具体的代码实现:
1 public class BubbleSort { 2 public static void main(String[] args) { 3 int[] arr = {6, 3, 8, 2, 9, 1}; 4 System.out.print("排序前:"); 5 for (int i : arr) { 6 System.out.print(i + ""); 7 } 8 for (int i = 0; i < arr.length - 1; i++){ 9 for (int j = 0; j < arr.length - 1 - i; j++){ 10 if(arr[j] > arr[j+1]){ 11 int temp = arr[j]; 12 arr[j] = arr[j+1]; 13 arr[j+1] = temp; 14 } 15 } 16 } 17 System.out.println(); 18 System.out.print("排序后:"); 19 for (int i : arr) { 20 System.out.print(i + ""); 21 } 22 } 23 }