So, I coded a program which asks you the number of integers and the integers the user wants to sort in descending order. The program works but I feel like it is very inefficient. If I were to receive high amount of numbers the program would have to do so much processing. Therefore, how can I improve my code in simple ways? (Open to any criticism)
import java.util.Scanner;
public class Main {
private static Scanner scanner = new Scanner(System.in);
private static Scanner scanner2 = new Scanner(System.in);
public static void main(String[] args) {
System.out.println("How many integers do you want to sort?");
int[] IntArray = getIntegers(scanner.nextInt());
IntArray = sortIntegers(IntArray);
printIntegers(IntArray);
}
public static int[] getIntegers(int number) {
System.out.println("Enter " + number + " integers.");
int[] values = new int[number];
for (int i = 0; i < values.length; i++) {
values[i] = scanner2.nextInt();
}
return values;
}
public static int[] sortIntegers(int[] array){
int[] unsortedArray = new int[array.length];
for(int i = 0; i < unsortedArray.length; i++){
unsortedArray[i] = array[i];
}
for(int n = 0; n < unsortedArray.length - 1; n++) {
for (int j = 0; j < unsortedArray.length - 1; j++) {
if (unsortedArray[j] < unsortedArray[j + 1]) {
int k = unsortedArray[j];
unsortedArray[j] = unsortedArray[j + 1];
unsortedArray[j + 1] = k;
}
}
}
return unsortedArray;
}
public static void printIntegers(int[] array){
for(int i = 0; i < array.length; i++){
System.out.println(array[i]);
}
}
}