冒泡排序,可以說是最經典的排序算法了,博主畢業那年去各大公司面試,被要求寫過多次冒泡排序,現在想想感慨良多~~
1. 思想
在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰的兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒,像冒泡一樣。即:每當兩相鄰的數比較後發現它們的排序與排序要求相反時,就將它們互換。
2. 圖示
3. 代碼
public static void main(String[] args) {
int[] numbers = { 41, 72, 83, 90, 30, 25 };
new Test().bubbleSort(numbers);
//System.out.print(Arrays.toString(numbers));
}
public int[] bubbleSort(int[] numbers) {
int temp = 0;
for(int i = 0; i < numbers.length - 1; i++) {
for(int j = 0; j < numbers.length - 1 - i; j++) {
if(numbers[j] > numbers[j+1]) {
temp = numbers[j];
numbers[j] = numbers[j+1];
numbers[j+1] = temp;
}
}
//====測試用=====
System.out.println("第" + (i+1) + "遍");
System.out.println(Arrays.toString(numbers));
}
return numbers;
}
輸出結果:
第1遍
[27, 41, 66, 30, 25, 90]
第2遍
[27, 41, 30, 25, 66, 90]
第3遍
[27, 30, 25, 41, 66, 90]
第4遍
[27, 25, 30, 41, 66, 90]
第5遍
[25, 27, 30, 41, 66, 90]