java 输入任意几个数字,怎样将他们从大到小排序?

Python022

java 输入任意几个数字,怎样将他们从大到小排序?,第1张

public static void main(String[] args) { Scanner scan = new Scanner(System.in)。

}

System.out.println("从大到小输出:")

for (int m = num.length-1m >=0m--) {

System.out.println(num[m])//从大到小输出

}

}

String[] str = scan.nextLine().split(" "),// 输入时以空格隔开数字

int[] num = new int[str.length]//初始化一个整型数组,长度为你输入数字的个数。

String[] str = scan.nextLine().split(" ")// 输入时以空格隔开数字

int[] num = new int[str.length]//初始化一个整型数组,长度为你输入数字的个数

for (int i = 0i <str.lengthi++) {

num[i] = Integer.parseInt(String.valueOf(str[i]))//将字符转换为int型再赋给整型数组

}

Arrays.sort(num)//升序排序

System.out.println("从小到大输出:")

for (int j = 0j <num.lengthj++) {

System.out.println(num[j])//从小到大输出

可以实现比较器Comparator来定制排序方案,同时使用Colletions.sort的方式进行排序,代码如下:

public void sortDesc(List<Long>s){

Collections.sort(s, new Comparator<Long>() {

public int compare(Long o1, Long o2) {

Long result = o2 - o1

return result.intValue()

}

})

s.forEach(item->{

System.out.print(item +" ")

})

}

同时常用的比较排序算法主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。

java的冒泡排序实现如下:

public static void bubbleSort(int []arr) {        for(int i =0i<arr.length-1i++) {            for(int j=0j<arr.length-i-1j++) {//-1为了防止溢出                if(arr[j]>arr[j+1]) {                    int temp = arr[j]                                         arr[j]=arr[j+1]                                         arr[j+1]=temp            }            }            }    }

还有非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。

public static void main(String[] args) {

int[] arr = {4,3,78,68,98,1,4}

Map map = new HashMap<>()

for (int i = 0i <arr.lengthi++) {

int val = arr[i]

map.put(val,i)

}

for (int i = 0i<arr.length i++){

for(int j = 0j<arr.length - 1 - ij++){

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]))

}