Я думаю, что самый простой способ - упорядочить массив (это Log (n)).
Если вы не хотите изменять исходный массив, вы можете сделать клон первым (int b [] = Arrays.copyOf (a, a.length);).
Если вы хотите, чтобы позиция в массиве вместо значения сообщила мне, и я найду другое решение.
Скажите, поможет ли это:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter");
int a[] = { 45, 79, 2, 5, 74, 4, 19, 56, 2, 888 };
Arrays.sort(a);
System.out.print("ordered array: ");
for(int i:a){
System.out.print(i+", ");
}
System.out.println();
System.out.println("the 4th smallest : " + a[3]);
System.out.println("the 4th biggest: " + a[(a.length - 4)]);
}