冒泡排序实现原理:每次排序都把最大/最小的放到最后,每次比较相邻的两个数,如果顺序错误则交换位置。
看代码和输出更好理解。
package sort;
/*冒泡排序*/
public class BubbleSort {
public static void main(String[] args) {
int[] array = {6,2,7,3,8,1,9};
int count = 0;
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1-i; j++) {
count++;
System.out.println("比较第"+j+"个 和 第 " + (j+1) + "个");
if(array[j+1]<array[j]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println("比较次数:" + count);
System.out.println("after bubble sort");
for(int i=0;i<array.length;i++) {
System.out.print(array[i]+" ");
}
}
}
输出
比较第0个 和 第 1个
比较第1个 和 第 2个
比较第2个 和 第 3个
比较第3个 和 第 4个
比较第4个 和 第 5个
比较第5个 和 第 6个
比较第0个 和 第 1个
比较第1个 和 第 2个
比较第2个 和 第 3个
比较第3个 和 第 4个
比较第4个 和 第 5个
比较第0个 和 第 1个
比较第1个 和 第 2个
比较第2个 和 第 3个
比较第3个 和 第 4个
比较第0个 和 第 1个
比较第1个 和 第 2个
比较第2个 和 第 3个
比较第0个 和 第 1个
比较第1个 和 第 2个
比较第0个 和 第 1个
比较次数:21
after bubble sort
1 2 3 6 7 8 9