Java程序以降序对数组元素进行排序
按降序对给定数组进行排序,即从大到小排列元素。
例子:
Input :Array = {2, 6, 23, 98, 24, 35, 78}
Output:[98, 78, 35, 24, 23, 6, 2]
Input :Array = {1, 2, 3, 4, 5}
Output:[5, 4, 3, 2, 1]
排序是系统地排列项目的过程。 sort() 是Java .util.Arrays 中的一个内置函数,用于以优化的复杂性对元素数组进行排序。
方法
在Java中有多种方法可以按降序对给定数组进行排序。下面列出了其中的一些。
- 使用 Collections.reverseOrder() 方法
- 使用排序和反转
1. 使用 Collections.reverseOrder() 方法
通过将数组和 Collections.reverseOrder() 作为参数传递给 Arrays.sort(),可以按降序对数组元素进行排序。
Note: One thing to keep in mind is that when sorting in descending order, Arrays.sort() does not accept an array of the primitive data type.
执行:
Java
// Java program to sort the elements in descending order
import java.util.*;
class GFG {
public static void main(String[] args)
{
// Initializing the array
Integer array[] = { 1, 2, 3, 4, 5 };
// Sorting the array in descending order
Arrays.sort(array, Collections.reverseOrder());
// Printing the elements
System.out.println(Arrays.toString(array));
}
}
Java
// Java program to sort the elements in descending order
import java.util.*;
class GFG {
public static void main(String[] args)
{
// Initializing the array
int array[] = { 1, 2, 3, 4, 5, 6 };
// Sorting the array in ascending order
Arrays.sort(array);
// Reversing the array
reverse(array);
// Printing the elements
System.out.println(Arrays.toString(array));
}
public static void reverse(int[] array)
{
// Length of the array
int n = array.length;
// Swaping the first half elements with last half
// elements
for (int i = 0; i < n / 2; i++) {
// Storing the first half elements temporarily
int temp = array[i];
// Assigning the first half to the last half
array[i] = array[n - i - 1];
// Assigning the last half to the first half
array[n - i - 1] = temp;
}
}
}
输出
[5, 4, 3, 2, 1]
时间复杂度: O(N log N)
2. 使用排序和反转
- 对给定的数组进行排序。
- 反转已排序的数组。
下面是上述方法的实现:
Java
// Java program to sort the elements in descending order
import java.util.*;
class GFG {
public static void main(String[] args)
{
// Initializing the array
int array[] = { 1, 2, 3, 4, 5, 6 };
// Sorting the array in ascending order
Arrays.sort(array);
// Reversing the array
reverse(array);
// Printing the elements
System.out.println(Arrays.toString(array));
}
public static void reverse(int[] array)
{
// Length of the array
int n = array.length;
// Swaping the first half elements with last half
// elements
for (int i = 0; i < n / 2; i++) {
// Storing the first half elements temporarily
int temp = array[i];
// Assigning the first half to the last half
array[i] = array[n - i - 1];
// Assigning the last half to the first half
array[n - i - 1] = temp;
}
}
}
输出
[6, 5, 4, 3, 2, 1]
时间复杂度: O(N log N)