基本思想:
在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
代码块:
//冒泡排序
public class bubbleSort {
public static void main(String[] args) {
int a[]={2,65,17,3,95,46,72,35,61,9};
int temp=0; //作为交换的容器
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
for(int z=0;z<a.length;z++){
System.out.println(a[z]);
}
}
}
//优化的冒泡排序
public class bubbleSort {
public static void main(String[] args) {
int a[]={2,65,17,3,95,46,72,35,61,9};
int temp=0; //作为交换的容器
boolean bChange=false; //交换标记
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
bChange=true;
}
}
//如果bChange为false,说明本轮交换没有遍历
if(bChange==false){
System.out.format("第%d趟 ",i);
System.out.println("没有交换");
break;
}
}
for(int z=0;z<a.length;z++){
System.out.println(a[z]);
}
}
}