前言
一般情況,我們在Java中給數組排序,比起自己寫個冒泡排序,更加喜歡使用Java中自帶的sort方法,也就是Arrays.sort
方法
但是,這個方法只會將數組從小到大排列,如果我們需要從大到小排列的數組,怎么辦呢?
思路
我的想法是,把經過Arrays.sort
方法之后從小到大排列的數組,后面位置的元素與之前的元素進行交換,這樣,不就是實現了從大到小的排列了嗎?
需要注意的是:我們得分兩種情況,一種是數組中的元素個數是偶數,另外一種則是數組的元素個數為奇數
下面則是我實現的方法,經過測試,沒有錯誤
/**
*傳入一個有序的數組a(從小到大排序),返回一個從大到小的數組
* @param a 傳入的數組(有序)
* @return 返回一個數組(從大到小)
*/
public static int[] sort(int[] a){
int[] temp = a;
if(temp.length%2==0){
//數組里面的個數為偶數
for (int i = 0; i <= temp.length/ 2; i++) {
int temp1 = a[i];
temp[i]=temp[temp.length-1-i];
temp[temp.length - 1-i] = temp1;
}
}else{
//數組里面的個數為奇數
for (int i = 0; i < temp.length / 2; i++) {
int temp1 = a[i];
temp[i]=temp[temp.length-1-i];
temp[temp.length - 1-i] = temp1;
}
}
return temp;
}