* 思路: * 横向:n个元素,只需要跑n-1趟,最后一趟只剩一个数,不需要比较 * 竖向:n个元素,只需要比较n-1-i次,减i是因为最后i个数已经排好序了,减1是因为这里是和下一个数比较
public class BubbleSort {
public static void bubbleSort(int[] array){
for (int i=0;i<array.length-1;i++){ //最后一趟只剩一个数,不需要比较
//-i是因为每一趟都会选出一个最大/小值,最后的i个数不需要去比较,
// 另外,这里是当前数与下一个数比较,所以循环到只剩下一个时就不需要比较,所以-1
for (int j=0;j<array.length-1-i;j++){
if (array[j]>array[j+1]){
int temp=array[j+1];
array[j+1]=array[j];
array[j]=temp;
}
}
}
}
public static void main(String[] args) {
int[]array =new int[10];
for (int i = 0; i < array.length; i++) {
array[i]=(int)(Math.random()*100);
System.out.print(array[i]+",");
}
bubbleSort(array);
System.out.println();
for (int num:array){
System.out.print(num+",");
}
}
}
7,3,51,80,64,87,6,3,1,21,
1,3,3,6,7,21,51,64,80,87,