কম্পিউটার টিউটোরিয়াল

C ভাষায় বাইনারি সার্চ ব্যবহার করে অ্যারেতে ন্যূনতম এলিমেন্ট খুঁজে বের করার পদ্ধতি


C প্রোগ্রামিং ভাষা দুটি ধরণের সার্চিং টেকনিক প্রদান করে। এগুলো হলো:

  • লিনিয়ার সার্চ
  • বাইনারি সার্চ

বাইনারি সার্চ

  • এই মেথডটি শুধু সর্টেড লিস্টে প্রয়োগ করা যায়।
  • দেওয়া লিস্ট দুটি সমান অংশে ভাগ করা হয়।
  • দেওয়া কী (key) লিস্টের মাঝপথি এলিমেন্টের সাথে তুলনা করা হয়।

এখানে তিনটি পরিস্থিতি হতে পারে:

  • মাঝপথি এলিমেন্ট কী-এর সাথে মিললে, সার্চ সফলভাবে শেষ হয়।
  • মাঝপথি এলিমেন্ট কী-এর চেয়ে বড় হলে, সার্চ বাম পার্টিশনে চালিয়ে যাবে।
  • মাঝপথি এলিমেন্ট কী-এর চেয়ে ছোট হলে, সার্চ ডান পার্টিশনে চালিয়ে যাবে।

ইনপুট (i/p) - অনসর্টেড এলিমেন্টের লিস্ট, কী।

আউটপুট (o/p) -

  • সফল - যদি কী খুঁজে পাওয়া যায়
  • ব্যর্থ - অন্যথায়

C ভাষায় বাইনারি সার্চ ব্যবহার করে অ্যারেতে ন্যূনতম এলিমেন্ট খুঁজে বের করার পদ্ধতি

key = 20 mid = (low +high) /2

C ভাষায় বাইনারি সার্চ ব্যবহার করে অ্যারেতে ন্যূনতম এলিমেন্ট খুঁজে বের করার পদ্ধতি

প্রোগ্রাম ১

বাইনারি সার্চ ব্যবহার করে অ্যারেতে ন্যূনতম এলিমেন্ট খুঁজে বের করার C প্রোগ্রাম:

#include<stdio.h> int main(){    int a[50], n, i, key, flag = 0, low, mid, high;    printf("enter the no: of elements:");    scanf ("%d",&n);    printf("enter the elements:");    for(i=0; i<n; i++)       scanf( "%d", &a[i]);    printf("enter a key element:");    scanf ("%d", &key);    low = 0;    high = n-1;    while (low<= high ){       mid = (low + high) /2;       if (a[mid] == key){          flag = 1;          break;       }       else{          if (a[mid] > key)             high = mid-1;          else             low = mid+1;       }    }    if (flag == 1)       printf ("search is successful");    else       printf("search is unsuccessful");    return 0; }

আউটপুট

উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফলটি দেখায়:

Run 1: enter the no: of elements:5 enter the elements: 12 34 11 56 67 enter a key element:45 search is unsuccessful Run 2: enter the no: of elements:3 enter the elements: 12 34 56 enter a key element:34 search is successful

প্রোগ্রাম ২

বাইনারি সার্চ ব্যবহার করে অ্যারেতে ন্যূনতম এলিমেন্ট খুঁজে বের করার আরেকটি C প্রোগ্রাম:

#include<stdio.h> void Bmin(int *a, int i, int n){    int j, temp;    temp = a[i];    j = 2 * i;    while (j <= n){       if (j < n && a[j+1] > a[j])          j = j + 1;       if (temp < a[j])          break;       else if (temp >= a[j]){          a[j / 2] = a[j];          j = 2 * j;       }    }    a[j/2] = temp;    return; } int binarysearchmin(int *a,int n){    int i;    for(i = n/2; i >= 1; i--){       Bmin(a,i,n);    }    return a[1]; } int main(){    int n, i, x, min;    int a[20];    printf("Enter no of elements in an array\n");    scanf("%d", &n);    printf("\nEnter %d elements: ", n);    for (i = 1; i <= n; i++){       scanf("%d", &a[i]);    }    min = binarysearchmin(a, n);    printf("\minimum element in an array is : %d", min);    return 0; }

আউটপুট

উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফলটি দেখায়:

Enter no of elements in an array 5 Enter 5 elements: 12 23 34 45 56 minimum element in an array is: 12

  1. জাভাস্ক্রিপ্ট অ্যারেতে এলিমেন্ট সার্চ করা

  2. Android-এ অ্যারেতে মাঝপথের এলিমেন্ট বের করার পদ্ধতি

  3. C ভাষায় পয়েন্টার ব্যবহার করে অ্যারে এলিমেন্টের যোগফল বের করার পদ্ধতি

  4. C ভাষায় লিনিয়ার সার্চ ব্যবহার করে অ্যারেতে ন্যূনতম এলিমেন্ট খুঁজে বের করার পদ্ধতি