हमें एक धनात्मक पूर्णांक प्रकार की सरणी दी गई है, मान लीजिए arr[] किसी भी दिए गए आकार की, जिसमें सरणी के तत्वों का मान 0 से अधिक लेकिन सरणी के आकार से कम होना चाहिए। कार्य सरणी को इस तरह पुनर्व्यवस्थित करना है कि यदि arr[i] 'i' है, यदि 'i' सरणी में मौजूद है, अन्यथा arr[i] तत्व को -1 के मान के साथ सेट करें और अंतिम परिणाम प्रिंट करें।
विभिन्न इनपुट-आउटपुट परिदृश्य देखते हैं:
इनपुट: int arr[] = {0, 8, 1, 5, 4, 3, 2, 9}
आउटपुट: सरणी का पुनर्व्यवस्थित रूप जैसे कि arr[i] = i: 0 1 2 3 4 5 -1 -1
व्याख्या: हमें आकार 8 की एक पूर्णांक सरणी दी गई है और सरणी के सभी तत्वों का मान 8 से कम है। अब, हम सरणी को पुनर्व्यवस्थित करेंगे:
arr[0] = 0 (सरणी में मौजूद) arr[1] = 1 (सरणी में मौजूद) arr[2] = 2 (सरणी में मौजूद) arr[3] = 3 (सरणी में मौजूद) arr[4] = 4 (सरणी में मौजूद) arr[5] = 5 (सरणी में मौजूद) arr[6] = -1 (सरणी में मौजूद नहीं) arr[7] = -1 (सरणी में मौजूद नहीं)
इनपुट: int arr[] = {1, 2, 6, 9, 10}
आउटपुट: सरणी का पुनर्व्यवस्थित रूप जैसे कि arr[i] = i: -1 1 2 -1 -1
व्याख्या: हमें आकार 5 की एक पूर्णांक सरणी दी गई है और सरणी के सभी तत्वों का मान 5 से कम है। अब, हम सरणी को पुनर्व्यवस्थित करेंगे:
arr[0] = -1 (सरणी में मौजूद नहीं) arr[1] = 1 (सरणी में मौजूद) arr[2] = 2 (सरणी में मौजूद) arr[3] = -1 (सरणी में मौजूद नहीं) arr[4] = -1 (सरणी में मौजूद नहीं)
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण:
- पूर्णांक प्रकार के तत्वों की एक सरणी इनपुट करें और सरणी का आकार गणना करें।
- व्यवस्था से पहले सरणी प्रिंट करें और फंक्शन Rearranging(arr, size) को कॉल करें।
- फंक्शन Rearranging(arr, size) के अंदर:
- एक पूर्णांक प्रकार का वेरिएबल घोषित करें, मान लीजिए ptr।
- i को 0 से size से कम तक लूप चलाएं। अंदर, j को 0 से size से कम तक एक और लूप चलाएं।
- अंदर, जांचें यदि arr[j] == i तो ptr = arr[j] सेट करें, arr[j] को arr[i] पर, arr[i] को ptr पर सेट करें और ब्रेक करें।
- i को 0 से size से कम तक लूप चलाएं। अंदर, जांचें यदि 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]);
// सरणी को पुनर्व्यवस्थित करने के लिए फंक्शन कॉल करें जैसे कि arr[i] = i
Rearranging(arr, size);
// सरणी प्रिंट करें
cout << "Rearrangement of an array such that arr[i] = i is: ";
for(int i = 0; i < size; i++) {
cout << arr[i] << " ";
}
return 0;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा:
Rearrangement of an array such that arr[i] = i is: 0 1 2 3 4 5 -1 -1