//1.1 冒泡排序
public static void bubbleSort( int[] a){
for(int i=0;i<a.length-1;i++ ){//趟数:n-1
for( int j=0;j<a.length-i-1;j++){//让第j个和第j+1个数进行比较,违反需求则交换。j:0~n-i-1
if(a[j]>a[j+1]){
swap(a,j,j+1);
}
}
}
}
//1.2 冒泡排序(优化)---只要发现有一趟走下来没有一次交换,那么就认为已经排好序,后续的趟数不需要走了
public static void bubbleSort2( int[] a){
for(int i=0;i<a.length-1;i++ ){
boolean isOk= true;
for( int j=0;j<a.length-i-1;j++){
if(a[j]>a[j+1]){
swap(a,j,j+1);
isOk = false;
}
}
if(isOk){
break;
}
}
}
public static void swap(int[]a,int i,int j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}