हमें एक धनात्मक पूर्णांक प्रकार सरणी दी गई है, मान लीजिए, किसी भी आकार का arr[] ऐसा है कि किसी सरणी में तत्वों का मान 0 से अधिक होना चाहिए लेकिन किसी सरणी के आकार से कम होना चाहिए। कार्य एक सरणी को इस तरह से पुनर्व्यवस्थित करना है कि यदि एआर [i] 'i' है, यदि 'i' किसी सरणी में मौजूद है तो यह एआर [i] तत्व को मान -1 के साथ सेट करेगा और अंतिम प्रिंट करेगा परिणाम।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
इनपुट - int arr[] ={0, 8, 1, 5, 4, 3, 2, 9 }
आउटपुट - एक सरणी की पुनर्व्यवस्था जैसे कि arr[i] =i है:0 1 2 3 4 5 -1
स्पष्टीकरण - हमें आकार 8 का एक पूर्णांक सरणी और 8 से कम मान वाले सभी तत्वों को दिया जाता है। अब, हम सरणी को पुनर्व्यवस्थित करेंगे अर्थात
arr[0] = 0(present in an array) arr[1] = 1(present in an array) arr[2] = 2(present in an array) arr[3] = 3(present in an array) arr[4] = 4(present in an array) arr[5] = 5(present in an array) arr[6] = -1(NOT present in an array) arr[7] = -1(NOT present in an array)
इनपुट - int arr[] ={1, 2, 6, 9, 10}
आउटपुट - एक सरणी की पुनर्व्यवस्था जैसे कि arr[i] =i है:-1 1 2 -1 -1
स्पष्टीकरण - हमें आकार 5 का एक पूर्णांक सरणी और 5 से कम मान वाले सभी तत्वों को दिया जाता है। अब, हम सरणी को पुनर्व्यवस्थित करेंगे अर्थात
arr[0] = -1(NOT present in an array) arr[1] = 1(present in an array) arr[2] = 2(present in an array) arr[3] = -1(NOT present in an array) arr[4] = -1(NOT present in an array)
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें।
-
व्यवस्था से पहले सरणी को प्रिंट करें और फ़ंक्शन को कॉल करें Rearranging(arr, size)
-
समारोह के अंदर पुनर्व्यवस्थित करना(गिरफ्तारी, आकार)
-
एक पूर्णांक प्रकार चर घोषित करें, मान लें, ptr
-
I से 0 तक के लिए लूप प्रारंभ करें जब तक कि i आकार से कम न हो। लूप के अंदर, j से 0 तक j से j तक आकार से कम के लिए एक और लूप प्रारंभ करें।
-
लूप के अंदर, IF arr[j] =i को चेक करें, फिर ptr =arr[j], arr[j] को arr[i],arr[i] से ptr और ब्रेक पर सेट करें।
-
प्रारंभ लूप फॉर आई से लेकर आई तक आकार से छोटा है। लूप के अंदर, IF arr[i]!=i चेक करें और फिर arr[i] से -1 पर सेट करें।
-
-
किसी सरणी के मानों की पुनर्व्यवस्था के बाद सरणी को प्रिंट करें।
उदाहरण
#include <iostream> using namespace std; void Rearranging(int arr[], int size){ int ptr; for(int i = 0; i < size; i++){ for(int j = 0; j < size; j++){ if(arr[j] == i){ ptr = arr[j]; arr[j] = arr[i]; arr[i] = ptr; break; } } } for(int i = 0; i < size; i++){ if(arr[i] != i){ arr[i] = -1; } } } int main(){ int arr[] = {0, 8, 1, 5, 4, 3, 2, 9 }; int size = sizeof(arr) / sizeof(arr[0]); //calling the function to rearrange an array such that arr[i] = i Rearranging(arr, size); //Printing the array cout<<"Rearrangement of an array such that arr[i] = i is: "; for(int i = 0; i < size; i++){ cout << arr[i] << " "; } }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1