思想詳解:
第一輪:第一個元素和第二個元素進行比較值大的往移,第二個和第三個元素進行比較值大的往後移,
第三個和第四個進行比較值大的往後移...以此類推,第一輪是把數組中最大值放到最後一位
第二輪:第一個元素和第二個元素進行比較值大的往後移一位,
然後第二個元素和第三個元素進行比較,值大的往後移,以此類推,把數組第二大的放到倒數第二位 以此類推
代碼如下:
//冒泡排序
int[] arr={5,2,1,22,11,0};
//建立一個臨時變量
int temp;
for (int j = 0; j <arr.length-1 ; j++) {//進行比較的輪數:數組的長度-1 這裡的數組長度為6 6-1=5 所有會比較5輪,經過了5輪排序
for (int i = 0; i < arr.length - 1-j; i++) {//所有這裡要-1,(防止出現數組角标越界)
if (arr[i] > arr[i + 1]) {//因為這裡是+1 這裡是從小到大進行排序,如果要從大到小換成<就可以了
//滿足條件則交換
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
System.out.print(Arrays.toString(arr));