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

সি ভাষায় বাইনারি সার্চ (Binary Search) অ্যালগরিদম

বাইনারি সার্চ কী?

বাইনারি সার্চ কেবল সর্টেড (क्रमবিন্যস্ত) লিস্ট-এ প্রয়োগযোগ্য। এই পদ্ধতিতে লিস্টকে দুটি সমান অংশে ভাগ করে মাঝপথের এলিমেন্টটি কী (key) এর সাথে তুলনা করা হয়।

তিনটি পরিস্থিতি

  1. মাঝপথের এলিমেন্ট কী-এর সাথে মিললে → সার্চ সফল।
  2. মাঝপথের এলিমেন্ট কী-এর চেয়ে বড় হলে → বাম পাশে সার্চ চালু থাকে।
  3. মাঝপথের এলিমেন্ট কী-এর চেয়ে ছোট হলে → ডান পাশে সার্চ চালু থাকে।

ইনপুট ও আউটপুট

  • ইনপুট: সর্টেড লিস্ট, কী (key)।
  • আউটপুট: সফল (key পাওয়া গেলে) অথবা অসফল।

সি প্রোগ্রাম

#include <stdio.h>

int main() {
    int a[50], n, i, key, flag = 0, low, mid, high;

    printf("Enter number of elements: ");
    scanf("%d", &n);

    printf("Enter elements (sorted): ");
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);

    printf("Enter key element to search: ");
    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;
}

আউটপুট

Enter number of elements: 5
Enter elements: 23 45 57 89 90
Enter key element: 45
Search is successful

টাইম কমপ্লেক্সিটি

বাইনারি সার্চের টাইম কমপ্লেক্সিটি O(log n), যা লিনিয়ার সার্চ (O(n)) এর চেয়ে অনেক দ্রুত।

  1. C ভাষায় নেস্টেড if-else স্টেটমেন্ট ব্যাখ্যা

  2. C ভাষায় 'সিম্পল if' স্টেটমেন্ট ব্যাখ্যা

  3. বাইনারি সার্চ C++ প্রোগ্রামে

  4. C#-এ বাইনারি সার্চ (Binary Search)