今天聊一聊Java实现冒泡排序
说道冒泡,大家首先联想到的就是一杯水中充满大小不一气泡的场景,如果大的气泡升到最上面,小的气泡降到最下面,之后看到的就是一排上大下小的有序气泡。如果有一堆杂乱的数字,能够像水中气泡一样自动排列,那就好了。
不要着急,下面我们就开始使用Java来实现这个过程。
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] arr={7,8,5,4,1,2,3,9,6};
int i,j,temp;//定义临时变量temp,由于相邻的两个数字进行交换。
for(i=0;iarr[j+1]){//如果相邻的两个数字,前面的大于后面的,则冒泡。
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
System.out.println(Arrays.toString(arr));//每做一次交换都要输出一次
}
}
System.out.println("------以上为第"+(i+1)+"次循环的结果---------");
}
}
}
以下是程序运行的结果:
[7, 5, 8, 4, 1, 2, 3, 9, 6]
[7, 5, 4, 8, 1, 2, 3, 9, 6]
[7, 5, 4, 1, 8, 2, 3, 9, 6]
[7, 5, 4, 1, 2, 8, 3, 9, 6]
[7, 5, 4, 1, 2, 3, 8, 9, 6]
[7, 5, 4, 1, 2, 3, 8, 6, 9]
------以上为第1次循环的结果---------//第一次循环就将最大的数字9排序到最后
[5, 7, 4, 1, 2, 3, 8, 6, 9]
[5, 4, 7, 1, 2, 3, 8, 6, 9]
[5, 4, 1, 7, 2, 3, 8, 6, 9]
[5, 4, 1, 2, 7, 3, 8, 6, 9]
[5, 4, 1, 2, 3, 7, 8, 6, 9]
[5, 4, 1, 2, 3, 7, 6, 8, 9]
------以上为第2次循环的结果---------//第二次循环就将除9以外最大的数字8排序到最后
[4, 5, 1, 2, 3, 7, 6, 8, 9]
[4, 1, 5, 2, 3, 7, 6, 8, 9]
[4, 1, 2, 5, 3, 7, 6, 8, 9]
[4, 1, 2, 3, 5, 7, 6, 8, 9]
[4, 1, 2, 3, 5, 6, 7, 8, 9]
------以上为第3次循环的结果---------
[1, 4, 2, 3, 5, 6, 7, 8, 9]
[1, 2, 4, 3, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
------以上为第4次循环的结果---------//在第四次循环之后就完成了冒泡排序
------以上为第5次循环的结果---------
------以上为第6次循环的结果---------
------以上为第7次循环的结果---------
------以上为第8次循环的结果---------
对
7,8,5,4,1,2,3,9,6进行排序只是最普通的对九个数字进行排序,大家还可以试试极端情况9,8,7,6,5,4,3,2,1和一些正常无序的数字。