Ordenamiento acotado

Crea una función que devuelva true si un arreglo de entrada puede ordenarse por completo ordenando únicamente dentro de los límites [0, n] (inclusive), donde n es menor o igual que la longitud del arreglo, y false en caso contrario.

Ejemplos

boundSort([1, 6, 5, 3, 8, 9], [0, 3]) ➞ true
// Si [1, 6, 5, 3] se ordena como [1, 3, 5, 6], el arreglo queda completamente ordenado.

boundSort([1, 6, 5, 3, 8, 9], [0, 2]) ➞ false
// Aunque [1, 6, 5] se ordene como [1, 5, 6], el arreglo todavía no queda completamente ordenado.

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

boundSort([1, 9, 2, 5, 7], [0, 3]) ➞ false
// Ordenar desde [0, 3] produce [1, 2, 5, 9, 7], pero el arreglo todavía no queda completamente ordenado.

Notas

  • Los números del arreglo serán únicos.
  • El índice inferior del límite siempre será 0.