Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में सॉर्टेड सरणी को प्रोसेस करना अनसॉर्टेड सरणी से तेज क्यों होता है?


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 के बीच सही ऑपरेशन की भविष्यवाणी करना बहुत मुश्किल है।


  1. - C++ में सॉर्टेड एरे में निरपेक्ष विशिष्ट गिनती

    एक एरे समान डेटा प्रकार के तत्वों का एक संग्रह है। एक सॉर्टेड एरे एक एरे है जिसमें तत्व आरोही या अवरोही क्रम के अनुक्रम में संग्रहीत होते हैं। विशिष्ट गिनती उन तत्वों की संख्या है जो समान नहीं हैं। निरपेक्ष विशिष्ट गिनती तत्वों के निरपेक्ष मान की विशिष्ट गिनती है यानी चिह्न के बिना मान (अनसाइन्ड मा

  1. - C++ प्रोग्राम में सॉर्टेड ऐरे को प्रोसेस करना अनसॉर्टेड ऐरे से तेज क्यों होता है

    C++ में, ब्रांच प्रेडिक्शन के कारण सॉर्टेड ऐरे को प्रोसेस करना अनसॉर्टेड ऐरे से तेज होता है। कंप्यूटर आर्किटेक्चर में, ब्रांच प्रेडिक्शन यह निर्धारित करता है कि प्रोग्राम के निर्देश प्रवाह में एक सशर्त शाखा (जंप) के ली जाने की संभावना है या नहीं। आइए एक उदाहरण लेते हैं: 50) { // कुछ ऑपरेशन B क

  1. - C++ प्रोग्राम: सॉर्टेड ऐरे कार्यान्वयन (सिलेक्शन सॉर्ट)

    सॉर्टेड ऐरे ऐरे जिसमें तत्व क्रमबद्ध क्रम में हों (संख्यात्मक, वर्णानुक्रमिक, आदि)। कई सॉर्टिंग एल्गोरिदम: बबल सॉर्ट, इन्सर्शन सॉर्ट, सिलेक्शन सॉर्ट, मर्ज सॉर्ट, क्विक सॉर्ट, हीप सॉर्ट। सिलेक्शन सॉर्ट अनसॉर्टेड भाग में सबसे छोटा तत्व ढूंढकर उसे शुरुआत से स्वैप करता है। O(n²) समय जटिलता। C++ प्रोग