C++ में, सॉर्टेड सरणी को प्रोसेस करना अनसॉर्टेड सरणी से तेज होता है क्योंकि ब्रांच प्रेडिक्शन (branch prediction) के कारण। कंप्यूटर आर्किटेक्चर में, ब्रांच प्रेडिक्शन यह निर्धारित करता है कि प्रोग्राम के इंस्ट्रक्शन फ्लो में एक कंडीशनल ब्रांच (जंप) लिया जाने की संभावना है या नहीं।
आइए एक उदाहरण लेते हैं -
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, A A, B B
अनसॉर्टेड सरणी के लिए -
5, 51, 6, 90, 4, 49, 60... A, B, A, B, A, A, A, B
ब्रांच प्रेडिक्शन यहां महत्वपूर्ण भूमिका नहीं निभाता। A और B के बीच सही ऑपरेशन की भविष्यवाणी करना बहुत मुश्किल है।