linear search – লিনিয়ার সার্চ

প্রব্লেমঃ linear search n ইনলিমেনন্টের arr[] নামের একটি অ্যারে দেয়া আছে। x এর ভ্যালু, অ্যারের কত নাম্বার ইনডেক্সে আছে বের করতে হবে।


Input : arr[] = {10, 20, 80, 30, 60, 50, 
                     110, 100, 130, 170}
x = 110;
Output : 6
Element x is present at index 6

Input : arr[] = {10, 20, 80, 30, 60, 50, 
                     110, 100, 130, 170}
x = 175;
Output : -1
Element x is not present in arr[].

একদম ইজি উপায়ে …

আসলে linear search হল, অ্যারের এর প্রথম থেকে ডাটা তুলনা করা হয়। যখনি arr[i] এর ভ্যালুর সাথে x এর ভ্যালু মিলে যাবে , তখন অ্যারের ইনডেক্স রিটার্ন করবে। if(arr[i] == x)


#include <stdio.h>
 
int search(int arr[], int n, int x)
{
    int i;
    for (i = 0; i < n; i++)
        if (arr[i] == x)
            return i;
    return -1;
}
 
// Driver code
int main(void)
{
    int arr[] = { 2, 3, 4, 10, 40 };
    int x = 10;
    int n = sizeof(arr) / sizeof(arr[0]);
   
    // Function call
    int result = search(arr, n, x);
    (result == -1)
        ? printf("Element is not present in array")
        : printf("Element is present at index %d", result);
    return 0;
}

এখানে, আমরা একটি ফাংশন লিখেছি , করে দেয়ার জন্য। search(int arr[], int n, int x) ফাংশনটি দুটি ইনপুন নিবে (একটি অ্যারে, যা খুজতে হবে সেই ভেরিয়েবল) ।

যদি সব ঠিকঠাক থাকে তাহলে আমরা অ্যারে ইনডেক্স পাব, আর না থাকলে -1 রিটার্ন করবে।

যেহেতু এখানে একটি ভ্যালুর সাথে অ্যারের সকল ভ্যালুর তুলনা করা হচ্ছে, ফলে Time Complexity বেশি হবে।


// C++ program for linear search
#include<bits/stdc++.h>
using namespace std;

void search(vector<int> arr, int search_Element)
{
	int left = 0;
	int length = arr.size();
	int position = -1;
	int right = length - 1;
	
	// Run loop from 0 to right
	for(left = 0; left <= right;)
	{
		
		// If search_element is found with
		// left variable
		if (arr[left] == search_Element)
		{
			
			position = left;
			cout << "Element found in Array at "
				<< position + 1 << " Position with "
				<< left + 1 << " Attempt";
				
			break;
		}
	
		// If search_element is found with
		// right variable
		if (arr[right] == search_Element)
		{
			position = right;
			cout << "Element found in Array at "
				<< position + 1 << " Position with "
				<< length - right << " Attempt";
				
			break;
		}
		left++;
		right--;
	}

	// If element not found
	if (position == -1)
		cout << "Not found in Array with "
			<< left << " Attempt";
}

// Driver code
int main()
{
	vector<int> arr{ 1, 2, 3, 4, 5 };
	int search_element = 5;
	
	// Function call
	search(arr, search_element);
}
	
// This code is contributed by mayanktyagi1709


উপরের কোডটি সি++ এতে লেখা হয়েছে । এটি লেফট ও রাইটে দুই দিকে তুলনা করে Time Complexity কমিয়ে দিবে।

কাজ

  • সবগুলি কোড দুবার করে লিখে রান কর ।
  • সর্ট কর অ্যারে টি।
  • Binary Search কি? লিখে গুগুল কর । আরও কিছু রেজাল্ট প্রেক্টিস কর।

নিচের লংক গুলি ফলো করো

রেফারেন্স লিংক ওয়েবসাইট

Leave a Reply