package examenes.examen20241025;

import static examenes.examen20241025.utils.Utils.*;

public class Ejercicio_d {
    public static void main(String[] args) {

        //Generamos el array y pedimos los límites
        int[] arrayAleatorio = crearArrayNumsAleatorios(100, 0, 100);
        System.out.println("Elija entre que posiciones quiere ordenar un array de 100 elementos");
        int limiteMin = solicitarIntScanner("Introduzca el límite mínimo: "),
                limiteMax = solicitarIntScanner("Introduzca el límite máximo");

        //Mostramos el array sin ordenar
        System.out.println("Sin ordenar:");
        mostrarArrayNums(arrayAleatorio);
        //Lo mostramos ordenado
        System.out.println("\nOrdenado Parcial:");
        mostrarArrayNums(ordenarArrayParcial(arrayAleatorio, limiteMin, limiteMax));
    }

    public static int[] ordenarArrayParcial(int[] array, int min, int max) {
        boolean ordenando;
        //Ordenamos con burbuja
        do {
            ordenando = false;
            //Indicamos donde empezar y hasta donde llegar, pero evitando que nos pasemos
            for (int i = min; i < (max <= array.length ? max : array.length); i++) {
                if (i != (array.length - 1) && array[i] > array[i + 1]) {
                    int tempNum = array[i];
                    array[i] = array[i + 1];
                    array[i + 1] = tempNum;
                    ordenando = true;
                }
            }
        } while (ordenando);
        return array;
    }
}