तत्वों की संख्या के साथ एक सरणी एआर [] को देखते हुए, हमारा कार्य यह जांचना है कि दिया गया सरणी क्रमबद्ध क्रम में है या नहीं, यदि यह क्रमबद्ध क्रम में है तो "सरणी क्रमबद्ध क्रम में है" प्रिंट करें, अन्यथा "सरणी" प्रिंट करें क्रमबद्ध क्रम में नहीं है"।
उपर्युक्त समस्या को हल करने के लिए हम पुनरावर्ती या पुनरावर्ती दृष्टिकोण का उपयोग कर सकते हैं, हम दोनों पर चर्चा करेंगे।
पुनरावर्ती दृष्टिकोण
तो, एक पुनरावर्ती दृष्टिकोण क्या है? रिकर्सिव दृष्टिकोण में हम वांछित परिणाम प्राप्त होने तक बार-बार एक फ़ंक्शन को बार-बार कॉल करते हैं। पुनरावर्ती दृष्टिकोण में फ़ंक्शन द्वारा लौटाए गए मान स्टैक मेमोरी में संग्रहीत होते हैं।
इनपुट
arr[] = {12, 13, 14, 16, 18} आउटपुट
The array is in sorted order
स्पष्टीकरण -12 <13 <14 <16 <18, तो, हाँ सरणी क्रमबद्ध है
इनपुट
arr[] = {2, 1, 3, 5, 6} आउटपुट
The array is not in sorted order
स्पष्टीकरण -2 1 से छोटा नहीं है, इसलिए, यह क्रमबद्ध क्रम में नहीं है।
समस्या को हल करने के लिए नीचे इस्तेमाल किया गया तरीका इस प्रकार है -
-
एक सरणी arr[] को इनपुट के रूप में लें और n को एक सरणी के आकार के साथ प्रारंभ करें।
-
जांचें कि क्या हम किसी सरणी की शुरुआत तक पहुँच चुके हैं, सही लौटें।
-
जांचें कि क्या किसी सरणी का पिछला तत्व अगले तत्व से छोटा नहीं है, झूठी वापसी करें।
-
डिक्रीमेंट एन और गोटो स्टेप 2।
एल्गोरिदम
Start
In function int arraySortedCheck(int arr[], int n)
Step 1→ If n == 1 || n == 0 then,
Return 1
Step 2→ If arr[n-1] < arr[n-2] then,
Return 0
Step 3→ Return arraySortedCheck(arr, n-1)
In Function int main(int argc, char const *argv[])
Step 1→ Declare and initialize arr[] as {1,8,3,4,7}
Step 2→ Declare and initialize int n as sizeof(arr)/sizeof(arr[0])
Step 3→ If arraySortedCheck(arr, n) then,
Print "Array is in sorted order”
Step 4→ Else
Print "Array is not in sorted order”
Stop उदाहरण
//Recursive approach
#include <stdio.h>
//Recursive function to check if it
//is in sorted order or not
int arraySortedCheck(int arr[], int n){
//all elements are checked and
//all are in sorted order
if (n == 1 || n == 0)
return 1;
//when an array is not in sorted order
if(arr[n-1] < arr[n-2])
return 0;
return arraySortedCheck(arr, n-1);
}
int main(int argc, char const *argv[]){
int arr[] = {1,8,3,4,7};
int n = sizeof(arr)/sizeof(arr[0]);
if(arraySortedCheck(arr, n)){
printf("Array is in sorted order\n");
}
else
printf("Array is not in sorted order\n");
return 0;
} आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
The array is in sorted order
पुनरावर्ती दृष्टिकोण
पुनरावृत्त दृष्टिकोण में, हम फॉर-लूप, जबकि-लूप या डू-लूप जैसे लूप का उपयोग करते हैं जो स्टेटमेंट को तब तक निष्पादित करता है जब तक कि कंडीशन सही न हो जिसका अर्थ है 1.
इनपुट
arr[] = {12, 13, 14, 16, 18} आउटपुट
The array is in sorted order
स्पष्टीकरण -12 <13 <14 <16 <18, तो, हाँ सरणी क्रमबद्ध क्रम में है
इनपुट
arr[] = {2, 1, 3, 5, 6} आउटपुट
The array is not in sorted order
स्पष्टीकरण 2 1 से छोटा नहीं है, इसलिए, यह क्रमबद्ध क्रम में नहीं है।
समस्या को हल करने के लिए नीचे उपयोग किया गया दृष्टिकोण इस प्रकार है
-
इनपुट अरेस्ट करें []।
-
जब तक हम उस सरणी के अंत तक नहीं पहुँच जाते तब तक लूप करें।
-
जांचें कि क्या वर्तमान तत्व अगले तत्व से छोटा नहीं है, झूठी वापसी करें और बाहर निकलें।
-
अन्यथा जारी रखें।
-
-
गोटो चरण 2.
एल्गोरिदम
Start
In function int arraySortedCheck(int arr[], int n)
Step 1 → Loop For i = 0 and i < n and ++i
If arr[n-1] < arr[n-2] then,
Return 0
Step 2→ Return 1
In Function int main(int argc, char const *argv[])
Step 1→ Declare and initialize arr[] as {1,8,3,4,7}
Step 2→ Declare and initialize int n as sizeof(arr)/sizeof(arr[0])
Step 3→ If arraySortedCheck(arr, n) then,
Print "Array is in sorted order”
Step 4→ Else
Print "Array is not in sorted order”
Stop उदाहरण
//Iterative approach
#include <stdio.h>
int arraySortedCheck(int arr[], int n){
for (int i = 0; i < n; ++i){
//when an array is not in sorted order
if(arr[n-1] < arr[n-2])
return 0;
}
//all elements are checked and
//all are in sorted order
return 1;
}
int main(int argc, char const *argv[]){
int arr[] = {1,8,3,4,7};
int n = sizeof(arr)/sizeof(arr[0]);
if(arraySortedCheck(arr, n)){
printf("Array is in sorted order\n");
}
else
printf("Array is not in sorted order\n");
return 0;
} आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
The array is in sorted order