किसी भी क्रम में पूर्णांक संख्या वाले पूर्णांक सरणी Arr[] को देखते हुए। लक्ष्य सरणी पर पुनरावर्ती खोज का उपयोग करके सरणी में मौजूद इनपुट पूर्णांक वैल को खोजना है।
यदि इनपुट सरणी Arr[] में वैल नहीं मिलता है तो -1 लौटाएं। Arr[] में पाए जाने पर वैल का इंडेक्स प्रिंट करें।
उदाहरण
इनपुट −Arr[] ={11,43,24,50,93,26,78} वैल=26
आउटपुट - 26 इंडेक्स 5 पर पाया गया
स्पष्टीकरण -
Elements in the array start from index 0 to index=array length -1. First index=0 last index=6 : 11 != 26, 78 != 26 → 0+1 , 6-1 First index=1 last index=5 : 43 != 26, 26 = 26 return 5 26 is present at index 5.
इनपुट - Arr[] ={11,43,24,50,93,26,78} वैल=66
आउटपुट - 66 मौजूद नहीं है
स्पष्टीकरण -
Elements in the array start from index 0 to index=array length -1. First index=0 last index=6 : 11 != 66, 78 != 66 → 0+1 , 6-1 First index=1 last index=5 : 66 != 26, 66 != 26 → 1+1 , 5-1 First index=2 last index=4 : 24 != 66, 93 != 66 → 2+1 , 4-1 First index=3 last index=3 : 50 != 26, 50 != 26 → 3+1 , 3-1 First index=3 last index=2 3>2 end 66 not found.
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
इस दृष्टिकोण में हम सरणी को दोनों सिरों से रैखिक रूप से पार करेंगे। दोनों सिरों पर तत्वों के साथ इनपुट मान की तुलना करें। यदि पाया जाता है, तो इंडेक्स को वापस लौटाएं और अगले तत्वों के लिए पहले इंडेक्स =पिछला पहला इंडेक्स + 1 और आखिरी इंडेक्स =पिछला आखिरी इंडेक्स -1 के साथ दोबारा जांचें। मामले में पहली अनुक्रमणिका>अंतिम अनुक्रमणिकाफिर तत्व नहीं मिला।
-
पूर्णांक तत्वों के साथ इनपुट सरणी Ar[] लें।
-
वैल के रूप में खोजे जाने वाले तत्व को लें।
-
फ़ंक्शन searchRec(int arr[], int start,int end, int num) एक सरणी लेता है, पहली और आखिरी अनुक्रमणिका और मान संख्या जिसे खोजा जाना है और यदि पाया जाता है तो अनुक्रमणिका लौटाता है।
-
परिवर्तनीय परिणाम को -99 के रूप में लें।
-
अगर arr[start] ==num तो परिणाम को start के रूप में सेट करें
-
अगर arr[end] ==num तो परिणाम को अंत के रूप में सेट करें
-
अगर (प्रारंभ> अंत) तो परिणाम =-1 सेट करें। पूरे सरणी को पार करने के रूप में
-
यदि परिणाम का मान -99 के अलावा अन्य है, तो परिणाम लौटाएं अन्यथा searchRec(arr, start + 1, end-1, num)
का उपयोग करके पुनरावर्ती रूप से खोजें। -
मुख्य चेक वापसी मूल्य के अंदर और तदनुसार प्रिंट परिणाम
उदाहरण
#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