- 1 si está ordenado en orden creciente
- -1 si está ordenado en orden decrecente
- 0 si no tiene orden
El array [aquí se imprime al contenido del array] está ordenado de forma creciente.
El array [aquí se imprime al contenido del array] está ordenado de forma decreciente.
El array [aquí se imprime al contenido del array] no tiene orden.
Ejemplo:
El array [50, 40, 31, 8, 1] está ordenado de forma decreciente
El array [50, 54, 57, 80, 110] está ordenado de forma decreciente
El array [34,14,345,1,23,3] no tiene orden
El array [50, 54, 57, 80, 110] está ordenado de forma decreciente
El array [34,14,345,1,23,3] no tiene orden
SOLUCIÓN EN JAVA:
package ordenarrays;
public class OrdenArrays {
//Esta función averigua el orden del array que se le pasa como parámetro
// 1 Si está ordenado de forma creciente
// -1 Si está ordenado de forma decreciente
// 0 Si no está ordenado
static int averiguaOrden(int array[]) {
int paresOrdenadosAscendente = 0, paresOrdenadosDescendente = 0, resultado;
//Recorro todo el array y cuento los pares que hay ordenados de forma creciente
//y también cuento los que hay ordenados de forma decreciente
for (int i = 0; i < array.length - 1; i++) {
if (array[i] > array[i + 1]) {
paresOrdenadosAscendente++;
}
if (array[i] < array[i + 1]) {
paresOrdenadosDescendente++;
}
}
if (paresOrdenadosAscendente == array.length - 1) {
//Si los pares ordenados de forma creciente es igual al total de pares
//es porque está ordenado de forma creciente todo el array
resultado = 1;
} else if (paresOrdenadosDescendente == array.length - 1) {
//Si los pares ordenados de forma decreciente es igual al total de pares
//es porque está ordenado de forma decreciente todo el array
resultado = -1;
} else {
//En caso contrario, es porque no hay orden
resultado = 0;
}
return resultado;
}
public static void main(String[] args) {
//Creo un array con valores arbitrarios
int array[] = {50, 40, 31, 8, 1};
int orden;
//Hago una llamada a la función para averiguar el orden del array
orden = averiguaOrden(array);
//Dependiendo del valor que devuelva la llamada a la función tendré
//que imprimir el orden correspondiente
switch (orden) {
case 0:
System.out.print("El array "+Arrays.toString(array)+" no tiene orden");
break;
case 1:
System.out.print("El array "+Arrays.toString(array)+" está ordenado de forma decreciente");
break;
case -1:
System.out.print("El array "+Arrays.toString(array)+" está ordenado de forma decreciente");
break;
}
}
}
No hay comentarios:
Publicar un comentario