Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में बाइनरी सर्च एल्गोरिदम

बाइनरी सर्च क्या है?

बाइनरी सर्च केवल सॉर्ट की गई सूची पर लागू होता है। सूची को दो बराबर भागों में बांटा जाता है और खोजी जाने वाली की (key) की तुलना मध्य एलिमेंट से की जाती है।

तीन संभावित स्थितियां

  1. मध्य एलिमेंट == की: खोज सफलतापूर्वक समाप्त।
  2. मध्य एलिमेंट > की: बाएं भाग में खोज जारी।
  3. मध्य एलिमेंट < की: दाएं भाग में खोज जारी।

एल्गोरिदम

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;
}

C प्रोग्राम

#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 sorted elements: ");
    for(i = 0; i < n; i++)
        scanf("%d", &a[i]);
    printf("Enter key 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 successful");
    else
        printf("Search unsuccessful");
    return 0;
}

आउटपुट

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

समय जटिलता

बाइनरी सर्च की समय जटिलता O(log n) होती है, जो रैखिक खोज (O(n)) से कहीं बेहतर है।

  1. C भाषा में  सिंपल इफ  स्टेटमेंट समझें C भाषा में 'सिंपल इफ' स्टेटमेंट समझें

    इफ कीवर्ड का उपयोग स्टेटमेंट्स के एक सेट को निष्पादित करने के लिए किया जाता है जब लॉजिकल कंडीशन ट्रू होती है। सिंटैक्स सिंटैक्स नीचे दिया गया है: if (condition) { // स्टेटमेंट(s) } सिंपल इफ स्टेटमेंट का कामकाज इफ ब्लॉक के अंदर के स्टेटमेंट्स केवल तभी निष्पादित होते हैं जब कंडीशन ट्रू होती

  1. C++ में बाइनरी खोज प्रोग्राम C++ में बाइनरी खोज प्रोग्राम

    बाइनरी खोज क्या है? बाइनरी खोज (आधा-अंतराल खोज) एक खोज एल्गोरिदम है जो क्रमबद्ध सरणी में लक्ष्य मान की स्थिति ढूंढता है। यह लक्ष्य मान की तुलना मध्य तत्व से करता है और खोज स्थान को आधा कर देता है। मुख्य बिंदु केवल क्रमबद्ध सरणी पर काम करता है समय जटिलता: O(log n) दुनिया के सभी नाम क्रमबद्ध हों तो

  1. C# में बाइनरी सर्च (Binary Search) C# में बाइनरी सर्च (Binary Search)

    बाइनरी सर्च एक सॉर्टेड ऐरे पर काम करता है। मान की तुलना ऐरे के मध्य एलिमेंट से की जाती है। यदि समानता नहीं मिलती है, तो वह आधा भाग हटा दिया जाता है जिसमें मान नहीं होता है। उसी तरह, दूसरे आधे भाग की खोज की जाती है।यहां हमारे ऐरे में मध्य एलिमेंट है। मान लीजिए हमें 62 ढूंढना है, तो बायां भाग हटा दिया