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

सरणी को क्रमबद्ध करने के लिए संचालन की गणना करने के लिए सी ++ कोड

मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है (n विषम है)। ए में पहली अप्राकृतिक संख्याओं का क्रमपरिवर्तन होता है। चलो एक फ़ंक्शन है f(i) यह 0 से n-2 की सीमा में एकल तर्क i लेता है, और ऑपरेशन करता है:यदि A[i]> A[i+1], A[i] और A[ के मानों को स्वैप करें मैं +1]। सरणी ए को पहली बार क्रमबद्ध करने के लिए हमें पुनरावृत्तियों की संख्या गिननी होगी।

इसलिए, यदि इनपुट ए =[4, 5, 7, 1, 3, 2, 6] जैसा है, तो आउटपुट 5 होगा, क्योंकि प्रत्येक पुनरावृत्ति के बाद सरणी इस प्रकार है:[4, 5, 1, 7, 2, 3, 6], [4, 1, 5, 2, 7, 3, 6], [1, 4, 2, 5, 3, 7, 6], [1, 2, 4, 3, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7]।

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

n :=Af का आकार :=0Ans :=0इनिशियलाइज़ करने के लिए Ans :=0, do:f :=0 इनिशियलाइज़ j :=0 के लिए, जब j  A[j + 1], तो:f :=1 यदि f गैर-शून्य नहीं है, तो:प्रारंभ करने के लिए लूप से बाहर आएं j :=(Ans AND 1), जब j  A[j + 1], तो:A[j] और A[j + 1] स्वैप करें (Ans को 1 से बढ़ाएं) पूर्व> 

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include नेमस्पेस std का उपयोग करना;इंट सॉल्व (वेक्टर A){ int n =A.size(); बूल एफ =0; इंट उत्तर =0; के लिए (Ans =0;;){ f =0; के लिए (इंट जे =0; जे <एन -1; जे ++) अगर (ए [जे]> ए [जे + 1]) एफ =1; अगर (! एफ) तोड़; के लिए (int j =(Ans &1); j  A[j + 1]) स्वैप (A[j], A[j + 1]); उत्तर++; } वापसी Ans;}int main(){ वेक्टर A ={ 4, 5, 7, 1, 3, 2, 6}; cout <<हल (A) < 

इनपुट

{ 4, 5, 7, 1, 3, 2, 6 }

आउटपुट

5

  1. सी++ में सरणी के एक्सओआर को शून्य बनाने के लिए न्यूनतम संचालन

    समस्या कथन हमें n तत्वों की एक सरणी दी गई है। कार्य संपूर्ण सरणी 0 का XOR बनाना है। इसे प्राप्त करने के लिए हम निम्नलिखित कार्य कर सकते हैं। हम किसी एक तत्व का चयन कर सकते हैं - तत्व का चयन करने के बाद, हम इसे 1 से बढ़ा या घटा सकते हैं। हमें पूरे सरणी के XOR योग को शून्य बनाने के लिए चयनित तत्व क

  1. C++ में सरणी के GCD को k का गुणज बनाने के लिए न्यूनतम संचालन

    मान लीजिए कि हमारे पास एक सरणी गिरफ्तारी और दूसरा मान k है। हमें सरणी के GCD को k के गुणज के बराबर बनाने के लिए न्यूनतम संख्या में संक्रियाओं का पता लगाना होगा। इस मामले में, ऑपरेशन मूल्य में वृद्धि या कमी कर रहा है। मान लीजिए कि सरणी {4, 5, 6} की तरह है, और k 5 है। हम 4 को 1 से बढ़ा सकते हैं और 6 क

  1. सी ++ में एक क्रमबद्ध सरणी में पूर्ण विशिष्ट गणना?

    एक सरणी एक ही डेटा प्रकार के तत्वों का एक संग्रह है। एक क्रमबद्ध सरणी एक सरणी है जिसमें तत्वों को आरोही या अवरोही क्रम में संग्रहीत किया जाता है। विशिष्ट गणना उन तत्वों की संख्या है जो समान नहीं हैं। एब्सोल्यूट डिफरेंट काउंट तत्वों के निरपेक्ष मान की अलग गिनती है यानी बिना चिह्न वाले तत्व (अहस्ताक