¿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