utopía:
Estoy escribiendo un método para comprobar si un array de tipo doble es ascendente numéricamente en Java. Sin embargo, no entiendo por qué debo cambiar en donde coloco return true
y return false
para mi código para trabajar. Seguramente puedo guardo como es y debería seguir funcionando? ¿Qué no estoy entendiendo?
public static boolean isSorted(double[] arr) {
for (int i = 0; i < arr.length-1; i++) {
if (arr[i] < arr[i + 1]) {
return true;
}
}
return false;
}
Andrónico:
Usted está volviendo a la primera si invocación cuerpo de la declaración, lo que significa, usted está comprobando si los dos primeros elementos se ordenan. Usted no debe regresar false
, si hay un par consecutivo, que no está ordenada. Si usted pasa por toda la matriz y no se encuentra dicho par, entonces la matriz está ordenada. Esto debería hacer el trabajo:
for (int i = 0; i < arr.length-1; i++) {
if (arr[i] > arr[i + 1]) {
return false;
}
}
return true;