冒泡排序
(嵌套)
比较的轮数:数组长度-1
每轮比较的次数:数组长度-当前轮数-1
public class Maopao{
public static void main(String[] args) {
int [] arr ={32,8,64,10,5};
for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int temp:arr){
System.out.print(temp+",");
}
}
}
改进(稳定性)
class Wdmp{
public static void main(String[] args) {
int [] arr = {11,12,1,7,9,4,4};
boolean flag = true;
for (int i = 0; i<arr.length-1&&flag;i++ ) {
flag = false;
for(int j =0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
swap(arr,j,j+1);
flag = true;
}
}
}
for(int c:arr){
System.out.print(c);
}
}
public static void swap(int arr[],int i,int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
做标记flag,对于有序数组,就不需要再往下重新比较了