可以實(shí)現(xiàn)比較器Comparator來(lái)定制排序方案,同時(shí)使用Colletions.sort的方式進(jìn)行排序,代碼如下:
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括莒南網(wǎng)站建設(shè)、莒南網(wǎng)站制作、莒南網(wǎng)頁(yè)制作以及莒南網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,莒南網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到莒南省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!
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ù)排序,桶排序等。
按照你的要求依次輸入10個(gè)正整數(shù),每輸入一個(gè)整數(shù)就進(jìn)行排序的Java程序如下
import java.util.Scanner;
public class J {
public static void bubblesort(int[] arr,int n){
for(int i=0;in-1;i++){
for(int j=0;jn-1-i;j++){
if(arr[j]arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=0;in;i++){
System.out.print(arr[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
int a[]=new int[10];
Scanner sc=new Scanner(System.in);
for(int i=0;i10;i++){
a[i]=sc.nextInt();
bubblesort(a,i+1);
}
}
}
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í)以空格隔開(kāi)數(shù)字。
int[] num = new int[str.length];//初始化一個(gè)整型數(shù)組,長(zhǎng)度為你輸入數(shù)字的個(gè)數(shù)。
String[] str = scan.nextLine().split(" ");// 輸入時(shí)以空格隔開(kāi)數(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]);//從小到大輸出
實(shí)現(xiàn)思路:就是輸入的數(shù)字之間有固定的規(guī)則,之后讀取后,依次進(jìn)行大小比較,之后直到排序結(jié)束,輸出結(jié)果即可:
import java.util.Scanner;
public class ArrangedNumbers {
Integer arryNum[];
int count = 0;/* 統(tǒng)計(jì)數(shù)字 */
boolean judgeIsNum = true;
StringBuffer stringbuffer = new StringBuffer();
Scanner scanner = new Scanner(System.in);
String character;
int memoryNum;
/**
* 任意輸入字符
*
* @return 返回輸入的內(nèi)容
*/
// public String inputNum() {
// return null;
// }
/**
* 判斷為數(shù)字
*/
public void judgmentFigures() {
while (judgeIsNum) {
System.out.println("請(qǐng)任意輸入數(shù)字,以空格間隔,以回車(chē)結(jié)束!");
character = scanner.nextLine();
char[] figures = character.toCharArray();
for (int i = 0; i figures.length; i++) {
if (!(figures[i] = '1' figures[i] = '9')
figures[i] != 32) {
judgeIsNum = true;
break;
}
judgeIsNum = false;
}
if (!judgeIsNum)
stringbuffer.append(character);
}
String inputContent = stringbuffer.toString();
String[] numbers = inputContent.split("\\s+");
arryNum = new Integer[numbers.length];
for (int i = 0; i numbers.length; i++) {
try {
memoryNum = Integer.parseInt(numbers[i]);
arryNum[count] = new Integer(memoryNum).intValue();
count++;
} catch (Exception e) {
/* 如果不出現(xiàn)異常,則說(shuō)明肯定是數(shù)字 */
}
}
}
/**
* 對(duì)數(shù)字進(jìn)行排序
*/
public void compareNum() {
for (int i = 0; i arryNum.length; i++) {
for (int j = 0; j arryNum.length - i - 1; j++) {
if (arryNum[j] arryNum[j + 1]) {
Integer temp = arryNum[j];
arryNum[j] = arryNum[j + 1];
arryNum[j + 1] = temp;
}
}
}
}
/**
* 按升序排列輸出
*/
public void outputNum() {
System.out.println("按升序排序:");
for (int i = 0; i arryNum.length; i++) {
System.out.println(arryNum[i]);
}
}
}
//package com.color.program;
public class JJArrangedNumbers {
public static void main(String args[]) {
ArrangedNumbers arrangeNumbers = new ArrangedNumbers();
arrangeNumbers.judgmentFigures();
arrangeNumbers.compareNum();
arrangeNumbers.outputNum();
}
}
--------運(yùn)行結(jié)果-------
請(qǐng)任意輸入數(shù)字,以空格間隔,以回車(chē)結(jié)束!
123 4 5 6 7 7,23
請(qǐng)任意輸入數(shù)字,以空格間隔,以回車(chē)結(jié)束!
2 e adf 3 4
請(qǐng)任意輸入數(shù)字,以空格間隔,以回車(chē)結(jié)束!
5 6 6 76 7
按升序排序:
5
6
6
7
76
上述公式可以修改為:=-*INT(/)。MONTH函數(shù)函