Pourquoi le traitement d'un tableau trié est-il plus rapide que celui d'un tableau non trié ?
Bonjour, collègues ! Je suis un développeur Java débutant et j'ai rencontré un comportement étrange dans mon code. J'ai un simple test de performance : je somme tous les éléments d'un tableau qui sont supérieurs à un certain seuil. Mais j'ai remarqué que si le tableau est préalablement trié, le code s'exécute 2 à 3 fois plus vite ! Voici mon code :
```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);
}
// Trier le tableau
int[] sorted = data.clone();
Arrays.sort(sorted);
long start = System.nanoTime();
long sumSorted = processArray(sorted);
long end = System.nanoTime();
System.out.println("Trié : " + (end - start) + " ns, somme=" + sumSorted);
start = System.nanoTime();
long sumUnsorted = processAr