প্রব্লেমঃ 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 কি? লিখে গুগুল কর । আরও কিছু রেজাল্ট প্রেক্টিস কর।
নিচের লংক গুলি ফলো করো
- অ্যারে কি ( what is array in c)
- সওয়াপ ইন সি ( Swap in C)
- প্রেক্টিসের কোড সি -০১ ( practice code c language)
- টাইপ কাস্টিং কি ( What is Type Casting )
- গো-টু ইন সি ( goto in c)
- কন্টিনিউ ইন সি ( continue in c )
- ব্রেক কিওয়ার্ড সি (break keyword in c)
রেফারেন্স লিংক ওয়েবসাইট
Discussion