Розбір
To sort the integers in non-increasing order, you can use any sorting algorithm.
For example, you can use the sort function from the STL. To specify the sorting direction, you can utilize comparators:
less<int>() — for sorting in ascending order;
greater<int>() — for sorting in descending order;
These comparators are defined in the <set> library.
Algorithm implementation
Declare the array.
#define MAX 1010 int m[MAX];
Read the input data.
scanf("%d",&n); for(i = 0; i < n; i++) scanf("%d",&m[i]);
Sort the array in descending order.
sort(m,m+n,greater<int>());
Print the resulting array.
for(i = 0; i < n; i++) printf("%d ",m[i]); printf("\n");
Algorithm implementation — vector
Declare a vector to store the input sequence of numbers.
vector<int> v;
Read the input data.
scanf("%d",&n); v.resize(n); for(i = 0; i < n; i++) scanf("%d",&v[i]);
Sort the array in descending order.
sort(v.begin(),v.end(),greater<int>());
Print the resulting array.
for(i = 0; i < v.size(); i++) printf("%d ",v[i]); printf("\n");
Algorithm implementation — comparator
Declare the array.
#define MAX 1001 int m[MAX];
Declare a function — comparator f to sort integers in descending order.
int f(int a, int b) { return a > b; }
The main part of the program. Read the input data.
scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &m[i]);
Sort the array in descending order using a comparator.
sort(m, m + n, f);
Print the resulting array.
for (i = 0; i < n; i++) printf("%d ", m[i]); printf("\n");
Java implementation — comparator
import java.util.*; public class Main { public static class MyFun implements Comparator<Integer> { public int compare(Integer a, Integer b) { return b - a; } } public static void main(String[] args) { Scanner con = new Scanner(System.in); int n = con.nextInt(); Integer m[] = new Integer[n]; for(int i = 0; i < n; i++) m[i] = con.nextInt(); Arrays.sort(m, new MyFun()); for(int i = 0; i < n; i++) System.out.print(m[i] + " "); System.out.println(); con.close(); } }
Java implementation — reverse order
import java.util.*; public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); int n = con.nextInt(); Integer m[] = new Integer[n]; for(int i = 0; i < n; i++) m[i] = con.nextInt(); Arrays.sort(m,Collections.reverseOrder()); for(int i = 0; i < n; i++) System.out.print(m[i] + " "); System.out.println(); con.close(); } }
Python implementation
Read the input data.
n = int(input()) lst = list(map(int,input().split()))
Sort the list in descending order.
lst.sort(reverse = True)
Print the numbers in non-increasing order.
print(*lst)