- 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