抽象理解就像是,像泡泡一样把大的往后冒
话不多说直接上代码
public static void sortwin(int a[]){
int zhuan=0;
// 标记后面一轮是否有过交换
boolean T=false;
// 所有论
for (int j = 0; j a[i+1]){
T=true;
zhuan=a[i];
a[i]=a[i+1];
a[i+1]=zhuan;
}
}
if (!T){
// 如果没有交换那证明已经排序完成
break;
}else{
// 重置
T=false;
}
}
System.out.println(Arrays.toString(a));
}
思路就是:
(1)外循环一共进行数组大小-1次循环(每循环一次排序一次)
(2)内循环每一次排序次数都在逐渐减小,(因为最大值已经在最后)
优化:如果发现某次排序一次交换都没有,那这个就是排序好的
测试看速度:
int a[] = new int[80000];
for (int i = 0; i



