什么叫冒泡排序:
就是一组无序的数,需要按从小到大或者从大到小排序。
比如:有9 4 5 6 8 3 2 7 10 1这几个数
开始:9 4 5 6 8 3 2 7 10 1 (下标从左到右分别是0~9)按照上面的程序进行对比交换
第一次:4 9 5 6 8 3 2 7 10 1
第二次:4 9 5 6 8 3 2 7 10 1
。。。:(没有交换)
第五次:3 9 5 6 8 4 2 7 10 1
第六次:2 9 5 6 8 3 4 7 10 1
。。。:(没有交换)
第十次:1 9 5 6 8 3 4 7 10 2
可以看出,原来较小的数是在前面的,经过一轮的交换后放到后面了。
10个元素的数组。
比9趟就排好序了。因为每一趟出一个值。
每趟中比的次数,越来越少。每趟都比上一趟少一次。
冒泡语法:双层循环来实现,外层趟数,里层次数。
趟数 = n-1; n是10
次数 = n - 趟数
下面我们具体实例来进行演示:
int a[]=new int[]{4,2,19,8,23,1,9};//定义一个数组 for(int i=1;i<a.length;i++) { for(int j=1;j<a.length-i+1;j++) { if(a[j]<a[j-1]) //判断两个值的大小 { int b=0; //定义一个中间变量 b=a[j]; //依次交换 a[j]=a[j-1]; a[j-1]=b; } } } for(int i=0;i<a.length;i++) { System.out.print(a[i]+" "); }