冒泡排序之所以叫冒泡排序,是因為其排序規則如果水中氣泡一樣,從底部到頂部依次變大,最頂部的一定是最大值,通過不斷的冒泡,實現數據的有序化。
從底部開始冒泡,冒泡到哪個位置,該位置即為底部元素中的最大值,一輪冒泡結束,最大值就到了頂部。進行數組長度-1次數的冒泡,數據就可以實現從大到小的排序了。
這一輪的冒泡,頂部的對應位置已經是有序的最大值了,因此下一輪的冒泡可以不與數組頂部進行比較了,節約時間成本。
示例代碼:
int[] arr = new int[]{3, 5, 11, 2, 8}; for(int i = 0; i< arr.length-1; i++){ for(int j = arr.length-1; j>i; j--){ int tmp = arr[j]; if (arr[j] > arr[j-1]){ arr[j] = arr[j-1]; arr[j-1] = tmp; } } } System.out.println(Arrays.toString(arr));