Java 对数组降序排序
时间: 2023-11-12 08:06:00 浏览: 114
Java对数组降序排序可以使用以下两种方法:
1. 先使用内置函数升序排序,再新建一个数组,使升序后的数组元素逆序赋值给新数组即可。具体实现可以参考以下代码:
int[] ns = { 28, 12, 89, 73, 65, 18, 96, 50, 8, 36 };
Arrays.sort(ns);//先升序排序
int[] ns1 = new int[ns.length];
for(int i=0;i<=ns.length-1;i++) {
ns1[i]=ns[ns.length-1-i];
}
ns=ns1;
2. 使用Collections.sort()方法和Comparator接口实现降序排序。具体实现可以参考以下代码:
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(4);
list.add(2);
list.add(5);
Collections.sort(list, Collections.reverseOrder());//降序排序
System.out.println(list);
相关问题
用java使用归并排序对数组降序
在Java中,我们可以使用归并排序算法对整数数组进行降序排列。这里是一个简单的示例:
首先,我们定义一个辅助方法 `merge` 来合并两个已经排好序的子数组,然后创建主方法 `mergeSortDesc` 实现归并排序:
```java
public class MergeSortDescending {
public void mergeSort(int[] array, int left, int right) {
if (left < right) {
int middle = (left + right) / 2;
mergeSort(array, left, middle);
mergeSort(array, middle + 1, right);
merge(array, left, middle, right);
}
}
private void merge(int[] array, int left, int middle, int right) {
int[] temp = new int[right - left + 1];
int i = left, j = middle + 1, k = 0;
while (i <= middle && j <= right) {
if (array[i] >= array[j]) { // 降序排列条件
temp[k++] = array[i++];
} else {
temp[k++] = array[j++];
}
}
// 将剩余的部分复制回原数组
while (i <= middle) {
temp[k++] = array[i++];
}
while (j <= right) {
temp[k++] = array[j++];
}
// 把临时数组的内容复制回原数组
for (i = left; i <= right; i++) {
array[i] = temp[i - left];
}
}
public static void main(String[] args) {
MergeSortDescending sort = new MergeSortDescending();
int[] numbers = {4, 2, 9, 6, 7, 1};
sort.mergeSort(numbers, 0, numbers.length - 1);
// 打印排序后的数组
for (int num : numbers) {
System.out.print(num + " ");
}
}
}
```
当你运行这个程序,数组 `numbers` 将会被按降序排列,输出结果为 `9 7 6 4 2 1`。
java数组降序排序
你可以使用Java中的Arrays类的sort方法,然后使用Collections类的reverse方法来实现数组的降序排序。以下是示例代码:
```java
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
Integer[] arr = {5, 2, 9, 1, 3};
// 使用Arrays类的sort方法对数组进行排序
Arrays.sort(arr);
// 使用Collections类的reverse方法将数组元素反转
Collections.reverse(Arrays.asList(arr));
// 输出排序后的数组
System.out.println(Arrays.toString(arr));
}
}
```
输出结果将为:[9, 5, 3, 2, 1],表示数组已按降序排序。
阅读全文