冒泡排序的规则思路:
1.一共进行数组的大小-1次循环
2.每次排序(外层循环)确定一个最大数往右边移动(内层循环 )
3.每一趟排序的数在逐渐减少
代码:
public class BubbleSort {
public static void main(String[] args) {
int[] arry={7,6,82,1,-5,9,23,0,45,3};
bubbleSort(arry);
for (int i : arry) {
System.out.print(i+" ");
}
}
public static void bubbleSort(int[] arry){
int temp;
for (int i = 0; i <arry.length-1 ; i++) {
for (int j = 0; j < arry.length-1-i; j++) {
if(arry[j]>arry[j+1]){
//比较前后两数 前数大则替换顺序
temp=arry[j+1];
arry[j+1]=arry[j];
arry[j]=temp;
}
}
}
}
}
优化:
public static void bubbleSort(int[] arry){
int temp;
for (int i = 0; i <arry.length-1 ; i++) {
boolean flag=false;//假如某次排序没有交换过一次 表明已经有序
for (int j = 0; j < arry.length-1-i; j++) {
if(arry[j]>arry[j+1]){
//比较前后两数 前数大则替换顺序
temp=arry[j+1];
arry[j+1]=arry[j];
arry[j]=temp;
flag=true;
}
}
if(!flag){ //一次交换后一次都没有排序过
break;
}
}
}
}