C++ में, ब्रांच प्रेडिक्शन के कारण सॉर्टेड ऐरे को प्रोसेस करना अनसॉर्टेड ऐरे से तेज होता है। कंप्यूटर आर्किटेक्चर में, ब्रांच प्रेडिक्शन यह निर्धारित करता है कि प्रोग्राम के निर्देश प्रवाह में एक सशर्त शाखा (जंप) के ली जाने की संभावना है या नहीं।
आइए एक उदाहरण लेते हैं:
if(arr[i] > 50) {
// कुछ ऑपरेशन B करें
} else {
// कुछ ऑपरेशन A करें
}
यदि हम इस कोड को 100 तत्वों के लिए अनसॉर्टेड और सॉर्टेड क्रम में चलाते हैं तो नीचे चीजें होंगी:
सॉर्टेड ऐरे के लिए:
1, 2, 3, 4, 5, ... 50, 51 ... 100
A, A, A, A, A, A, B, B
यह पाइपलाइन में सही शाखा लोड करेगा और सही क्रम A, A, A, A, A, A, A, B, B
अनसॉर्टेड ऐरे के लिए:
5, 51, 6, 90, 4, 49, 60...
A, B, A, B, A, A, A, B
यहां ब्रांच प्रेडिक्शन अपनी महत्वपूर्ण भूमिका नहीं निभाता। ऑपरेशन A और B के बीच सही ऑपरेशन का अनुमान लगाना बहुत मुश्किल है।