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