Avatar ·

¿Por qué procesar un array ordenado es más rápido que uno desordenado?

¡Saludos, colegas! Soy un desarrollador Java principiante y me encontré con un comportamiento extraño en mi código. Tengo una prueba de rendimiento simple: sumo todos los elementos del array que son mayores que un cierto umbral. Pero noté que si el array se ordena previamente, el código se ejecuta 2-3 veces más rápido. Aquí está mi código: ```java public class BranchPredictionTest { public static void main(String[] args) { int size = 100000; int[] data = new int[size]; Random rand = new Random(); for (int i = 0; i < size; i++) { data[i] = rand.nextInt(256); } // Ordenamos el array int[] sorted = data.clone(); Arrays.sort(sorted); long start = System.nanoTime(); long sumSorted = processArray(sorted); long end = System.nanoTime(); System.out.println("Sorted: " + (end - start) + " ns, sum=" + sumSorted); start = System.nanoTime(); long sumUnsorted = processAr