/**
* 题目:
* 对数组:100,39,55,66,45,64,98 按从大到小排序
* */
/**
* 冒泡排序解法:
* n个数,进行n-1趟比较,每一趟比较确定一个最末尾的数的位置;
* 每一趟排序中,要与(n-已走过的趟数i)个数字比较;
* 比如,7个数字要按从大到小排序,第一趟i=1时,
* 第一个数要与后面的n-i=7-1=6个数字比较;
* 如果这个数字比后一个数小,则两个数交换位置;
* 这就是冒泡排序
* */
public class BubbleSort {
public int[] bubbleSort(int[] array){
if(array == null || array.length < 1)
return null;
int n = array.length;
int temp = 0;
for(int i=0; i<n-1; i++){//n个数,比较n-1趟
for(int j=0; j<n-i-1; j++){//因为i是从0开始的,所以是比较n-i-1次
if(array[j] < array[j+1]){//当前数比后一个数小,交换位置
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}
public static void main(String[] args) {
BubbleSort bubble = new BubbleSort();
int[] array = {100,39,55,66,45,64,98};
int[] a = bubble.bubbleSort(array);
for(int i : a){
System.out.print(i+" ");
}
}
}
输出:
100 98 66 64 55 45 39