Ordenação dentro dos limites

Crie um método que retorne true se um array de entrada puder ser completamente ordenado ordenando apenas dentro dos limites [0, n] (inclusive), em que n é menor ou igual ao tamanho do array, e false caso contrário.

Exemplos

boundSort([1, 6, 5, 3, 8, 9], [0, 3]) ➞ true
// Se [1, 6, 5, 3] for ordenado como [1, 3, 5, 6], o array ficará completamente ordenado.

boundSort([1, 6, 5, 3, 8, 9], [0, 2]) ➞ false
// Mesmo que [1, 6, 5] seja ordenado como [1, 5, 6], o array ainda não ficará completamente ordenado.

boundSort([1, 9, 2, 5, 7], [0, 4]) ➞ true

boundSort([1, 9, 2, 5, 7], [0, 3]) ➞ false
// Ordenar a partir de [0, 3] resulta em [1, 2, 5, 9, 7]; o array ainda não fica completamente ordenado.

Notas

  • Os números do array serão únicos.
  • O índice inferior dos limites sempre será 0.

Exemplo em Java

assertEquals(true, Program.boundSort(new int[]{1, 6, 5, 3, 8, 9}, new int[]{0, 3}));