冒泡排序,可以说是最经典的排序算法了,博主毕业那年去各大公司面试,被要求写过多次冒泡排序,现在想想感慨良多~~
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]