हमें संख्याओं की एक सरणी दी गई है जैसे Arr1[] और दूसरी सरणी Arr2[] समान या भिन्न लंबाई की। Arr1[] में तत्वों को आरोही क्रम में क्रमबद्ध किया गया है, जैसे कि एक एकल तत्व को क्रमबद्ध नहीं किया जाता है। हमें दूसरी सरणी Arr2 [] से तत्व को खोजना होगा जैसे कि यह Arr1 [] के गलत तरीके से रखे गए तत्व को प्रतिस्थापित कर सकता है और इसे क्रमबद्ध कर सकता है। साथ ही, कई विकल्प उपलब्ध होने पर Arr2[] से चुना गया तत्व अधिकतम होना चाहिए।
इनपुट
Arr1[]= { 1,3,5,7,2,11 }, Arr2[]= { 4,8,7,10,9 }
आउटपुट
Maximum element that can make Arr1 sorted: 10
स्पष्टीकरण - Arr2[] में नंबर जो Arr1[] को सॉर्ट कर सकते हैं - 8,9,10 क्योंकि वे सभी>=7 और <=11 हैं। इनमें से 10 अधिकतम है।
नया Arr1[] { 1,3,5,7,10,11 } बन जाता है और क्रमबद्ध हो जाता है।
इनपुट
Arr1[]= { 12,5,22,17 }, Arr2[]= { 4,8,7,10,9 }
आउटपुट
No such element.
स्पष्टीकरण − Arr2[] में कोई भी umbers नहीं हैं जो>=12 और <=22 हैं।
Arr1[] को क्रमबद्ध नहीं किया जा सकता।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
Arrays arr1[] और arr2[] का उपयोग संख्याओं को संग्रहीत करने के लिए किया जाता है। Arr1[] एक तत्व को छोड़कर आरोही क्रम में क्रमबद्ध है।
-
फ़ंक्शन सॉर्टमैक्स (int arr1 [], int arr2 [], int n1, int n2) दोनों सरणियों और उनकी लंबाई और अद्यतन arr1 [] लेता है यदि arr2 [] में तत्व पाया जाता है जो अधिकतम है और एआर में गलत तत्व को भी बदल सकता है [] पी>
-
arr1[] में वैरिएबल wpos में गलत रखे गए एलिमेंट का स्टोर इंडेक्स, शुरू में -1।
-
maxx का उपयोग arr2 [] के उन तत्वों में से अधिकतम को संग्रहीत करने के लिए किया जाता है जो arr1 [] के गलत तरीके से रखे गए तत्व को बदल सकते हैं और इसे क्रमबद्ध कर सकते हैं।
-
पहले ट्रैवर्स arr1 [] पर और गलत तत्व ढूंढें जैसे। अगर गिरफ्तार [i] <गिरफ्तारी [i-1]। इंडेक्स को i के रूप में स्टोर करें।
-
अब arr2[] ट्रैवर्स करें और उन तत्वों को खोजें जिन्हें arr1[wpos-1] andarr[wpos+1] के बीच रखा जा सकता है। साथ ही यदि ऐसा कोई तत्व मौजूद है तो उसकी तुलना ऐसे अधिकतम तत्व से करें।
-
अधिकतम अपडेट करें।
-
अंत में arr1[wpos] को maxx से बदलें।
-
यदि ऐसा कोई तत्व पाया जाता है तो रिटर्न मैक्स, अन्यथा -1 लौटाएं।
-
यदि कोई तत्व नहीं मिलता है तो एक संदेश प्रदर्शित करें।
-
अन्य प्रिंट क्रमबद्ध arr1[].
उदाहरण
// C++ program to make array sorted #include <bits/stdc++.h> using namespace std; int sortMax(int arr1[], int arr2[], int n1, int n2) //making arr1 sorted{ int wpos=-1; int maxx=-1; int i,j; for(i=0;i<n1;i++) if(arr1[i]<arr1[i-1]) wpos=i; for(j=0;j<n2;j++){ if(arr2[j]>=arr1[wpos-1] && arr2[j]<=arr1[wpos+1]) if(arr2[j]>=maxx) maxx=arr2[j]; } if(maxx!=-1) arr1[wpos]=maxx; return maxx; } int main(){ int arr1[] = { 1, 3, 7, 4, 10 }; int arr2[] = { 2, 1, 6, 8, 9 }; int len1 = sizeof(arr1) / sizeof(arr1[0]); int len2 = sizeof(arr2) / sizeof(arr2[0]); int res=sortMax(arr1, arr2, len1, len2); if(res==-1) cout<<"No swap possible! No such element!"; else{ cout<<"Maximum in arr2[] to make arr1[] sorted:"<<res; cout<<endl<<"Arr1[]:"; for(int i=0;i<len1;i++) cout<<arr1[i]<<" "; cout<<endl<<"Arr2[]:"; for(int i=0;i<len2;i++) cout<<arr2[i]<<" "; } }
आउटपुट
Maximum in arr2[] to make arr1[] sorted:9 Arr1[]:1 3 7 9 10 Arr2[]:2 1 6 8 9