Avatar ·

सॉर्टेड array को प्रोसेस करना अनसॉर्टेड array से तेज़ क्यों होता है?

नमस्ते, सहकर्मियों! मैं एक शुरुआती Java डेवलपर हूँ और अपने कोड के अजीब व्यवहार का सामना किया। मेरे पास एक सरल प्रदर्शन परीक्षण है: मैं array के उन सभी तत्वों का योग करता हूँ जो एक निश्चित threshold से बड़े हैं। लेकिन मैंने देखा कि अगर array को पहले से सॉर्ट किया जाए, तो कोड 2-3 गुना तेज़ चलता है! यहाँ मेरा कोड है: ```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); } // सॉर्ट करें 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 = processArray(data); long end = System.nanoTime(); System.out.println("Unsorted: " + (end - start) + " ns, sum=" + sumUnsorted); } public static long processArray(int[] arr) { long sum = 0; for (int i = 0; i < arr.length; i++) { if (arr[i] >= 128) { sum += arr[i]; } } return sum; } } ```