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

सरणी को इस तरह पुनर्व्यवस्थित करें कि एआर [i]> =एआर [जे] अगर मैं भी हूं और एआर [i] <=एआर [जे] अगर मैं अजीब हूं और जे

हमें एक पूर्णांक सरणी दी जाती है जिसमें विषम और सम पूर्णांक मान होते हैं। कार्य एक सरणी को इस तरह से पुनर्व्यवस्थित करना है कि एआर [i] गिरफ्तारी [जे] से अधिक या बराबर होना चाहिए, इस शर्त के आधार पर कि इंडेक्स एआर [i] पर मूल्य सम होना चाहिए और अगर एआर पर मूल्य [i] विषम है तो arr[i] arr[j] के बराबर से कम होना चाहिए।

आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -

इनपुट - int arr[] ={5, 9, 10, 12, 32, 35, 67, 89}

आउटपुट - तत्वों को पुनर्व्यवस्थित करने के बाद सरणी हैं:12 32 10 35 9 67 5 89

स्पष्टीकरण - हमें विषम और सम पूर्णांकों वाली एक सरणी दी गई है। अब, हम arr[i] स्थिति से arr[j] स्थिति के विरुद्ध ट्रैवर्सिंग शुरू करेंगे और IF arr[i] की जांच करेंगे, फिर भी सुनिश्चित करें कि arr[i] arr[j] और IF arr[i] से बड़ा होना चाहिए। विषम है तो सुनिश्चित करें कि arr[i], arr[j] के बराबर से कम होना चाहिए।

इनपुट - int arr[] ={4, 5, 1, 2, 9, 10}

आउटपुट - तत्वों को पुनर्व्यवस्थित करने के बाद सरणी हैं:4 5 2 9 1 10

स्पष्टीकरण - हमें विषम और सम पूर्णांकों वाली एक सरणी दी गई है। अब, हम arr[i] स्थिति से arr[j] स्थिति के विरुद्ध ट्रैवर्सिंग शुरू करेंगे और IF arr[i] की जांच करेंगे, फिर भी सुनिश्चित करें कि arr[i] arr[j] और IF arr[i] से बड़ा होना चाहिए। विषम है तो सुनिश्चित करें कि arr[i], arr[j] के बराबर से कम होना चाहिए।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • पूर्णांक प्रकारों की एक सरणी घोषित करें। किसी सरणी के आकार की गणना size =sizeof(arr) / sizeof(arr[0]) के रूप में करें।

  • किसी फ़ंक्शन को array_rearrange(arr, size) के रूप में कॉल करें और डेटा को पैरामीटर के रूप में पास करें।

    • एक वैरिएबल को सम घोषित करें और इसे सम =आकार / 2 पर सेट करें और दूसरे चर को विषम घोषित करें और इसे आकार - सम पर सेट करें।

    • एक चर को अस्थायी घोषित करें और इसे विषम पर सेट करें - 1. arr_1[] के आकार के साथ एक array_2[] घोषित करें।

    • I से 0 के लिए लूप प्रारंभ करें और मैं आकार से कम हूं। लूप के अंदर, इसे arr_2[i] से arr[i] पर सेट करें।

    • किसी फ़ंक्शन को सॉर्ट (arr_2, arr_2 + size) के रूप में कॉल करें।

    • I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। लूप के अंदर, arr[i] को arr_2[temp] पर सेट करें और वेरिएबल टेम्प को 1 से घटाएं।

    • अस्थायी को विषम पर सेट करें। I से 1 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। लूप के अंदर, arr[i] को arr_2[temp] पर सेट करें और टेम्परेचर को 1 से बढ़ाएँ।

    • I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। गिरफ्तारी प्रिंट करें [i]।

उदाहरण

#include <bits/stdc++.h>

using namespace std;
void array_rearrange(int arr[], int size){
   int even = size / 2;
   int odd = size - even;
   int temp = odd - 1;
   int arr_2[size];
   for(int i = 0; i < size; i++){
      arr_2[i] = arr[i];
   }
   sort(arr_2, arr_2 + size);
   for(int i = 0; i < size; i += 2){
      arr[i] = arr_2[temp];
      temp--;
   }
   temp = odd;
   for(int i = 1; i < size; i += 2){
      arr[i] = arr_2[temp];
      temp++;
   }
   cout<<"Array after rearranging elements are: ";
   for (int i = 0; i < size; i++){
      cout << arr[i] << " ";
   }
}
int main(){
   int arr[] = {5, 9, 10, 12, 32, 35, 67, 89};
   int size = sizeof(arr) / sizeof(arr[0]);
   array_rearrange(arr, size);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा

Array after rearranging elements are: 12 32 10 35 9 67 5 89

  1. एक सरणी में चार तत्व a, b, c और d खोजें जैसे कि a+b =c+d C++ . में

    मान लीजिए कि हमारे पास पूर्णांकों की एक सूची है। हमारा काम चार अलग-अलग पूर्णांकों को दो जोड़े जैसे (ए, बी) और (सी, डी) के रूप में खोजना है, जैसे कि ए + बी =सी + डी। यदि एक से अधिक उत्तर हैं, तो केवल एक ही प्रिंट करें। मान लीजिए कि सरणी तत्व इस प्रकार हैं:ए =[7, 5, 9, 3, 6, 4, 2], तो जोड़े (7, 3) और

  1. सी ++ में एक ऐरे में सम और विषम अनुक्रमित तत्वों का पूर्ण अंतर?

    एक सरणी एक ही डेटा प्रकार के कई तत्वों का एक कंटेनर है। तत्वों का सूचकांक 0 से शुरू होता है यानी पहले तत्व का सूचकांक 0 होता है। इस समस्या में, हमें दो सम अनुक्रमित संख्याओं और दो विषम अनुक्रमित संख्याओं के बीच पूर्ण अंतर खोजने की आवश्यकता है। सम अनुक्रमित संख्या =0,2,4,6,8…. विषम अनुक्रमित संख्य

  1. एक ऐरे (सी++) में सम और विषम अनुक्रमित तत्वों का पूर्ण अंतर?

    यहां हम देखेंगे कि हम एक सरणी में विषम और यहां तक ​​कि अनुक्रमित तत्वों के पूर्ण अंतर कैसे प्राप्त कर सकते हैं। निरपेक्ष अंतर इंगित करता है कि यदि एक जोड़ी का अंतर ऋणात्मक है, तो निरपेक्ष मान लिया जाएगा। उदाहरण के लिए, मान लीजिए कि संख्याएँ {1, 2, 3, 4, 5, 6, 7, 8, 9} हैं। तो सम स्थिति तत्व 1, 3, 5,