Avatar ·

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