核心思想:相邻两个进行比较,每一轮找出最大的一个放在最后面。
public class MaoPao{public static void main(String []args){int[] a={8,3,6,2,1,5,4};//未排序前,遍历数组for(int i=0;i<a.length;i++){System.out.print(a[i]+"\t");}System.out.println();//冒泡排序法for(int i=0;i<a.length-1;i++){for(int j=0;j<a.length-1-i;j++){//比较a[j]和a[j+1]if(a[j]>a[j+1]){int k=a[j];a[j]=a[j+1];a[j+1]=k;}}}//经过冒泡排序后,打印出来for(int i=0;i<a.length;i++){System.out.print(a[i]+"\t");}}}
未排序前数组: 0 1 2 3 4 5 6
8 3 6 2 1 5 4
(j)
第一轮(i=0) 0~13 8 6 2 1 5 4
1~23 6 8 2 1 5 4
2~33 6 2 8 1 5 4
3~43 6 2 1 8 5 4
4~53 6 2 1 5 8 4
5~63 6 2 1 5 4 8
第二轮(i=1) 0~13 6 2 1 5 4 8
1~23 2 6 1 5 4 8
2~33 2 1 6 5 4 8
3~43 2 1 5 6 4 8
4~53 2 1 5 4 6 8
第三轮 (i=2)0~12 3 1 5 4 6 8
1~22 1 3 5 4 6 8
2~32 1 3 5 4 6 8
3~42 1 3 4 5 6 8
第四轮 (i=3) 0~11 2 3 4 5 6 8
1~21 2 3 4 5 6 8
2~31 2 3 4 5 6 8
第五轮 (i=4) 0~11 2 3 4 5 6 8
1~21 2 3 4 5 6 8
第六轮 (i=5) 0~11 2 3 4 5 6 8
通过上面的例子可以看出,外层循环变量i=5,可以表示为i<数组的长度-1,内层循环变量j跟i有关,可以表示为j<数组的长度-1-i。
运行结果如图:
如果觉得《冒泡排序法(升序)》对你有帮助,请点赞、收藏,并留下你的观点哦!