Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में दिए गए सरणी में किसी तत्व को पुनरावर्ती रूप से रैखिक खोजें


एक पूर्णांक सरणी Arr[] दी गई है जिसमें किसी भी क्रम में पूर्णांक संख्याएँ हैं। लक्ष्य है इनपुट पूर्णांक val को सरणी में पुनरावर्ती खोज का उपयोग करके ढूंढना।

यदि val इनपुट सरणी Arr[] में नहीं मिलता है तो -1 लौटाएं। यदि Arr[] में मिलता है तो val का इंडेक्स प्रिंट करें।

उदाहरण

इनपुट - Arr[] = {11,43,24,50,93,26,78} val=26

आउटपुट - 26 इंडेक्स 5 पर मिला

व्याख्या -

सरणी में तत्व इंडेक्स 0 से इंडेक्स=सरणी लंबाई -1 तक शुरू होते हैं। पहला इंडेक्स=0 अंतिम इंडेक्स=6: 11 != 26, 78 != 26 → 0+1, 6-1 पहला इंडेक्स=1 अंतिम इंडेक्स=5: 43 != 26, 26 = 26 5 लौटाएं 26 इंडेक्स 5 पर मौजूद है।

इनपुट - Arr[] = {11,43,24,50,93,26,78} val=66

आउटपुट - 66 मौजूद नहीं है

व्याख्या -

सरणी में तत्व इंडेक्स 0 से इंडेक्स=सरणी लंबाई -1 तक शुरू होते हैं। पहला इंडेक्स=0 अंतिम इंडेक्स=6: 11 != 66, 78 != 66 → 0+1, 6-1 पहला इंडेक्स=1 अंतिम इंडेक्स=5: 66 != 26, 66 != 26 → 1+1, 5-1 पहला इंडेक्स=2 अंतिम इंडेक्स=4: 24 != 66, 93 != 66 → 2+1, 4-1 पहला इंडेक्स=3 अंतिम इंडेक्स=3: 50 != 26, 50 != 26 → 3+1, 3-1 पहला इंडेक्स=3 अंतिम इंडेक्स=2 3>2 अंत 66 नहीं मिला।

उपयोग किया गया दृष्टिकोण

इस दृष्टिकोण में हम सरणी को दोनों छोर से रैखिक रूप से ट्रैवर्स करते हैं। इनपुट मान की तुलना दोनों छोर पर मौजूद तत्वों से करते हैं। यदि मिल जाता है, तो इंडेक्स लौटाएं अन्यथा अगले तत्वों के लिए पुनरावर्ती रूप से जांचें जहां पहला इंडेक्स = पिछला पहला इंडेक्स + 1 और अंतिम इंडेक्स = पिछला अंतिम इंडेक्स - 1। यदि पहला इंडेक्स > अंतिम इंडेक्स हो जाता है तो तत्व नहीं मिला।

  • पूर्णांक तत्वों के साथ इनपुट सरणी Ar[] लें।

  • खोजे जाने वाले तत्व को val के रूप में लें।

  • फ़ंक्शन searchRec(int arr[], int start, int end, int num) एक सरणी, पहला और अंतिम इंडेक्स और खोजे जाने वाले मान num को लेता है और यदि मिल जाए तो इंडेक्स लौटाता है।

  • चर result को -99 के रूप में लें।

  • यदि arr[start] == num तो result को start के रूप में सेट करें।

  • यदि arr[end] == num तो result को end के रूप में सेट करें।

  • यदि (start > end) तो result = -1 सेट करें। क्योंकि पूरी सरणी ट्रैवर्स हो चुकी है।

  • यदि result का मान -99 के अलावा कुछ है तो result लौटाएं अन्यथा searchRec(arr, start + 1, end - 1, num) का उपयोग करके पुनरावर्ती रूप से खोजें।

  • main के अंदर रिटर्न मान की जांच करें और तदनुसार परिणाम प्रिंट करें।

उदाहरण

#include<bits/stdc++.h> using namespace std; int searchRec(int arr[], int start,int end, int num){    int result=-99;    if (start > end){       result= -1;    }    if (arr[start] == num){       result=start;    }    if (arr[end] == num){       result=end;    }    if( result!=-99){       return result;    }    return searchRec(arr, start + 1, end - 1, num); } int main(){    int Arr[] = {11,43,22,56,33,26,78};    int i;    int len = sizeof(Arr) / sizeof(Arr[0]);    int val = 56;    int pos = searchRec(Arr, 0, len - 1, val);    if (pos == -1){       cout<<val<<" is not present" ;    }    else{       cout<<val<<" found at index "<<pos;    }    return 0; }

आउटपुट

उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:

56 found at index 3

  1. - लिनियर सर्च का उपयोग करके सरणी में न्यूनतम एलिमेंट खोजने के लिए C++ प्रोग्राम

    यह लिनियर सर्च दृष्टिकोण का उपयोग करके सरणी के न्यूनतम एलिमेंट को खोजने के लिए एक C++ प्रोग्राम है। इस प्रोग्राम की समय जटिलता O(n) है। एल्गोरिदम शुरुआत डेटा एलिमेंट को सरणी में निर्दिष्ट करें। 0 इंडेक्स पर मान को न्यूनतम वेरिएबल में निर्दिष्ट करें। न्यूनतम की तुलना अन्य डेटा एलिमेंट्स से क्रमिक रूप

  1. - C++ में सरणी का सबसे बड़ा एलिमेंट खोजने का प्रोग्राम

    एक सरणी में कई एलिमेंट्स होते हैं और सरणी में सबसे बड़ा एलिमेंट वह होता है जो अन्य एलिमेंट्स से बड़ा होता है। उदाहरण के लिए। 5 1 7 2 4 उपरोक्त सरणी में, 7 सबसे बड़ा एलिमेंट है और यह इंडेक्स 2 पर है। सरणी का सबसे बड़ा एलिमेंट खोजने का एक प्रोग्राम निम्नलिखित है। उदाहरण #include <iostream>

  1. - जावा प्रोग्राम: ऐरे में एलिमेंट को रिकर्सिवली लीनियरली सर्च करना

    इस लेख में, हम समझेंगे कि ऐरे में एलिमेंट को रिकर्सिवली लीनियरली कैसे सर्च किया जाता है। लीनियर सर्च एक बहुत ही सरल सर्च एल्गोरिदम है जिसमें सभी आइटम्स के लिए क्रमिक खोज की जाती है। उदाहरण मान लीजिए हमारा इनपुट है: Input array: 14 20 35 47 50 65 72 81 90 99 Key element: 72 वांछित आउटपुट होगा: The