n संख्या में तत्वों वाली एक सरणी arr[] दी गई है, हमारा कार्य यह जांचना है कि दी गई सरणी क्रमबद्ध क्रम में है या नहीं। यदि यह क्रमबद्ध क्रम में है तो "सरणी क्रमबद्ध क्रम में है" प्रिंट करें, अन्यथा "सरणी क्रमबद्ध क्रम में नहीं है" प्रिंट करें।
उपरोक्त बताई गई समस्या को हल करने के लिए हम पुनरावृत्त या पुनरावर्ती दृष्टिकोण का उपयोग कर सकते हैं, हम दोनों पर चर्चा करेंगे।
पुनरावर्ती दृष्टिकोण
तो, पुनरावर्ती दृष्टिकोण क्या है? पुनरावर्ती दृष्टिकोण में हम एक फ़ंक्शन को बार-बार तब तक पुनरावर्ती रूप से कॉल करते हैं जब तक हमें वांछित परिणाम नहीं मिल जाता। पुनरावर्ती दृष्टिकोण में फ़ंक्शन द्वारा लौटाए गए मान स्टैक मेमोरी में संग्रहीत होते हैं।
इनपुट
arr[] = {12, 13, 14, 16, 18} आउटपुट
सरणी क्रमबद्ध क्रम में है
व्याख्या
12 < 13 < 14 < 16 < 18, तो हां सरणी क्रमबद्ध है।
इनपुट
arr[] = {2, 1, 3, 5, 6} आउटपुट
सरणी क्रमबद्ध क्रम में नहीं है
व्याख्या
2, 1 से छोटा नहीं है, तो यह क्रमबद्ध क्रम में नहीं है।
समस्या हल करने के लिए उपयोग किया गया दृष्टिकोण
एक सरणी arr[] को इनपुट के रूप में लें और n को सरणी के आकार से प्रारंभ करें।
जांचें कि क्या हम सरणी की शुरुआत पर पहुंच गए हैं, तो सत्य लौटाएं।
जांचें कि क्या सरणी का पिछला तत्व अगले तत्व से छोटा नहीं है, तो असत्य लौटाएं।
n को घटाएं और चरण 2 पर जाएं।
एल्गोरिदम
शुरू फ़ंक्शन int arraySortedCheck(int arr[], int n) में चरण 1 → यदि n == 1 || n == 0 तो, 1 लौटाएं चरण 2 → यदि arr[n-1] < arr[n-2] तो, 0 लौटाएं चरण 3 → arraySortedCheck(arr, n-1) लौटाएं फ़ंक्शन int main(int argc, char const *argv[]) में चरण 1 → arr[] को {1, 8, 3, 4, 7} के रूप में घोषित और प्रारंभ करें चरण 2 → int n को sizeof(arr)/sizeof(arr[0]) के रूप में घोषित और प्रारंभ करें चरण 3 → यदि arraySortedCheck(arr, n) तो, "सरणी क्रमबद्ध क्रम में है" प्रिंट करें चरण 4 → अन्यथा "सरणी क्रमबद्ध क्रम में नहीं है" प्रिंट करें रुकें उदाहरण
// पुनरावर्ती दृष्टिकोण #include <stdio.h> // जांचने के लिए पुनरावर्ती फ़ंक्शन कि क्या // यह क्रमबद्ध क्रम में है या नहीं int arraySortedCheck(int arr[], int n){ // सभी तत्वों की जांच हो गई है और // सभी क्रमबद्ध क्रम में हैं if (n == 1 || n == 0) return 1; // जब सरणी क्रमबद्ध क्रम में नहीं है 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("सरणी क्रमबद्ध क्रम में है\n"); } else printf("सरणी क्रमबद्ध क्रम में नहीं है\n"); return 0; } आउटपुट
उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:
सरणी क्रमबद्ध क्रम में है
पुनरावृत्त दृष्टिकोण
पुनरावृत्त दृष्टिकोण में, हम फॉर-लूप, व्हाइल-लूप या डू-व्हाइल लूप जैसे लूप का उपयोग करते हैं जो कथनों को तब तक निष्पादित करते हैं जब तक स्थिति सत्य रहती है जिसका अर्थ 1 है।
इनपुट
arr[] = {12, 13, 14, 16, 18} आउटपुट
सरणी क्रमबद्ध क्रम में है
व्याख्या
12 < 13 < 14 < 16 < 18, तो हां सरणी क्रमबद्ध क्रम में है।
इनपुट
arr[] = {2, 1, 3, 5, 6} आउटपुट
सरणी क्रमबद्ध क्रम में नहीं है
व्याख्या
2, 1 से छोटा नहीं है, तो यह क्रमबद्ध क्रम में नहीं है।
समस्या हल करने के लिए उपयोग किया गया दृष्टिकोण
एक इनपुट arr[] लें।
लूप करें जब तक हम उस सरणी के अंत तक नहीं पहुंच जाते।
जांचें कि क्या वर्तमान तत्व अगले तत्व से छोटा नहीं है, तो असत्य लौटाएं और बाहर निकलें।
अन्यथा जारी रखें।
चरण 2 पर जाएं।
एल्गोरिदम
शुरू फ़ंक्शन int arraySortedCheck(int arr[], int n) में चरण 1 → लूप i = 0 से i < n और ++i के लिए यदि arr[n-1] < arr[n-2] तो, 0 लौटाएं चरण 2 → 1 लौटाएं फ़ंक्शन int main(int argc, char const *argv[]) में चरण 1 → arr[] को {1, 8, 3, 4, 7} के रूप में घोषित और प्रारंभ करें चरण 2 → int n को sizeof(arr)/sizeof(arr[0]) के रूप में घोषित और प्रारंभ करें चरण 3 → यदि arraySortedCheck(arr, n) तो, "सरणी क्रमबद्ध क्रम में है" प्रिंट करें चरण 4 → अन्यथा "सरणी क्रमबद्ध क्रम में नहीं है" प्रिंट करें रुकें उदाहरण
// पुनरावृत्त दृष्टिकोण #include <stdio.h> int arraySortedCheck(int arr[], int n){ for (int i = 0; i < n; ++i){ // जब सरणी क्रमबद्ध क्रम में नहीं है if(arr[n-1] < arr[n-2]) return 0; } // सभी तत्वों की जांच हो गई है और // सभी क्रमबद्ध क्रम में हैं 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("सरणी क्रमबद्ध क्रम में है\n"); } else printf("सरणी क्रमबद्ध क्रम में नहीं है\n"); return 0; } आउटपुट
उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:
सरणी क्रमबद्ध क्रम में है