কম্পিউটার

C++ এ প্রদত্ত অ্যারেতে রৈখিকভাবে একটি উপাদান অনুসন্ধান করার জন্য পুনরাবৃত্তিমূলক প্রোগ্রাম


একটি পূর্ণসংখ্যা অ্যারে দেওয়া হয়েছে Arr[] যেকোন ক্রমে পূর্ণসংখ্যা ধারণ করে। লক্ষ্য হল অ্যারেতে পুনরাবৃত্ত অনুসন্ধান ব্যবহার করে অ্যারেতে উপস্থিত ইনপুট পূর্ণসংখ্যা ভাল খুঁজে পাওয়া।

যদি val ইনপুট অ্যারে Arr[] এ পাওয়া না যায় তাহলে -1 রিটার্ন করুন। Arr[].

এ পাওয়া গেলে ভ্যালের সূচক প্রিন্ট করুন

উদাহরণ

ইনপুট −Arr[] ={11,43,24,50,93,26,78} val=26

আউটপুট − 5 সূচকে 26 পাওয়া গেছে

ব্যাখ্যা

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} val=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 তাহলে স্টার্ট হিসাবে ফলাফল সেট করুন

  • যদি 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

  1. বাইনারি অনুসন্ধান ব্যবহার করে একটি অ্যারেতে সর্বাধিক উপাদান খুঁজে পেতে C++ প্রোগ্রাম

  2. লিনিয়ার সার্চ ব্যবহার করে একটি অ্যারেতে ন্যূনতম উপাদান খুঁজে পেতে C++ প্রোগ্রাম

  3. একটি অ্যারের সবচেয়ে বড় উপাদান খুঁজে পেতে C++ প্রোগ্রাম

  4. জাভা প্রোগ্রাম রিকার্সিভলি লিনিয়ারলি অ্যারেতে একটি উপাদান অনুসন্ধান করতে