可以實(shí)現(xiàn)比較器Comparator來定制排序方案,同時(shí)使用Colletions.sort的方式進(jìn)行排序,代碼如下:
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),大姚企業(yè)網(wǎng)站建設(shè),大姚品牌網(wǎng)站建設(shè),網(wǎng)站定制,大姚網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,大姚網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
public void sortDesc(ListLong s){
Collections.sort(s, new ComparatorLong() {
public int compare(Long o1, Long o2) {
Long result = o2 - o1;
return result.intValue();
}
});
s.forEach(item-{
System.out.print(item +" ");
});
}
同時(shí)常用的比較排序算法主要有:冒泡排序,選擇排序,插入排序,歸并排序,堆排序,快速排序等。
java的冒泡排序?qū)崿F(xiàn)如下:
public?static?void?bubbleSort(int?[]arr)?{????????for(int?i?=0;iarr.length-1;i++)?{????????????for(int?j=0;jarr.length-i-1;j++)?{//-1為了防止溢出????????????????if(arr[j]arr[j+1])?{????????????????????int?temp?=?arr[j];?????????????????????????????????????????arr[j]=arr[j+1];?????????????????????????????????????????arr[j+1]=temp;????????????}????????????}????????????}????}
還有非比較排序,時(shí)間復(fù)雜度可以達(dá)到O(n),主要有:計(jì)數(shù)排序,基數(shù)排序,桶排序等。
public static void main(String[] args) {
int[] arr = {4,3,78,68,98,1,4};
Map map = new HashMap();
for (int i = 0;i arr.length;i++) {
int val = arr[i];
map.put(val,i);
}
for (int i = 0;iarr.length ;i++){
for(int j = 0;jarr.length - 1 - i;j++){
int temp = 0;
if(arr[j] arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
System.out.println( "從大到小排序:" + Arrays.toString(arr));
System.out.println("最大值=" + arr[0] + ",最大值位置=" + map.get(arr[0]));
}
public static void main(String[] args) {?Scanner scan = new Scanner(System.in)。
}
System.out.println("從大到小輸出:");
for (int m = num.length-1; m =0; m--) {
System.out.println(num[m]);//從大到小輸出
}
}
String[] str = scan.nextLine().split(" "),// 輸入時(shí)以空格隔開數(shù)字。
int[] num = new int[str.length];//初始化一個(gè)整型數(shù)組,長(zhǎng)度為你輸入數(shù)字的個(gè)數(shù)。
String[] str = scan.nextLine().split(" ");// 輸入時(shí)以空格隔開數(shù)字
int[] num = new int[str.length];//初始化一個(gè)整型數(shù)組,長(zhǎng)度為你輸入數(shù)字的個(gè)數(shù)
for (int i = 0; i str.length; i++) {
num[i] = Integer.parseInt(String.valueOf(str[i]));//將字符轉(zhuǎn)換為int型再賦給整型數(shù)組
}
Arrays.sort(num);//升序排序
System.out.println("從小到大輸出:");
for (int j = 0; j num.length; j++) {
System.out.println(num[j]);//從小到大輸出