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

C भाषा में बाइनरी सर्च का उपयोग करके ऐरे में न्यूनतम एलिमेंट कैसे खोजें?

C प्रोग्रामिंग भाषा दो प्रकार की सर्चिंग तकनीक प्रदान करती है:

  • लीनियर सर्च
  • बाइनरी सर्च

बाइनरी सर्च

  • यह मेथड केवल सॉर्टेड लिस्ट पर लागू की जा सकती है।
  • दी गई लिस्ट को दो बराबर भागों में विभाजित किया जाता है।
  • दिए गए की की तुलना लिस्ट के मध्य एलिमेंट से की जाती है।

यहां तीन स्थितियां हो सकती हैं:

  • यदि मध्य एलिमेंट की से मेल खाता है, तो सर्च यहां सफलतापूर्वक समाप्त होता है।
  • यदि मध्य एलिमेंट की से बड़ा है, तो सर्च बाएं पार्टीशन में आगे बढ़ेगा।
  • यदि मध्य एलिमेंट की से छोटा है, तो सर्च दाएं पार्टीशन में आगे बढ़ेगा।

इनपुट (i/p) - अनसॉर्टेड एलिमेंट्स की लिस्ट, की।

आउटपुट (o/p) -

  • सफलता - यदि की मिल जाती है
  • असफल - अन्यथा

प्रोग्राम 1

बाइनरी सर्च का उपयोग करके ऐरे में न्यूनतम एलिमेंट खोजने का C प्रोग्राम:

#include <stdio.h>

int main() {
    int a[50], n, i, key, flag = 0, low, mid, high;
    printf("एलिमेंट्स की संख्या दर्ज करें: ");
    scanf("%d", &n);
    printf("एलिमेंट्स दर्ज करें: ");
    for(i = 0; i < n; i++)
        scanf("%d", &a[i]);
    printf("की एलिमेंट दर्ज करें: ");
    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("सर्च सफल");
    else
        printf("सर्च असफल");
    return 0;
}

आउटपुट

Run 1:
एलिमेंट्स की संख्या दर्ज करें: 5
एलिमेंट्स दर्ज करें: 12 34 11 56 67
की एलिमेंट दर्ज करें: 45
सर्च असफल

Run 2:
एलिमेंट्स की संख्या दर्ज करें: 3
एलिमेंट्स दर्ज करें: 12 34 56
की एलिमेंट दर्ज करें: 34
सर्च सफल

प्रोग्राम 2

बाइनरी सर्च का उपयोग करके ऐरे में न्यूनतम एलिमेंट खोजने का एक और 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("ऐरे में एलिमेंट्स की संख्या दर्ज करें\n");
    scanf("%d", &n);
    printf("\n%d एलिमेंट्स दर्ज करें: ", n);
    for (i = 1; i <= n; i++) {
        scanf("%d", &a[i]);
    }
    min = binarysearchmin(a, n);
    printf("\nऐरे में न्यूनतम एलिमेंट है: %d", min);
    return 0;
}

आउटपुट

ऐरे में एलिमेंट्स की संख्या दर्ज करें 5
5 एलिमेंट्स दर्ज करें: 12 23 34 45 56
ऐरे में न्यूनतम एलिमेंट है: 12
  1. Android में सरणी (Array) का मध्य तत्व कैसे ढूंढें? Android में सरणी (Array) का मध्य तत्व कैसे ढूंढें?

    Android में सरणी (Array) का मध्य तत्व ढूंढना यह उदाहरण दर्शाता है कि Android में सरणी (Array) का मध्य तत्व कैसे ढूंढा जाता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project पर जाएं और आवश्यक विवरण भरकर एक नया प्रोजेक्ट बनाएं। चरण 2: लेआउट XML में कोड जोड़ें res/layout/activity_m

  1. C भाषा में पॉइंटर्स का उपयोग करके ऐरे एलिमेंट्स का योग कैसे निकालें? C भाषा में पॉइंटर्स का उपयोग करके ऐरे एलिमेंट्स का योग कैसे निकालें?

    पॉइंटर क्या है? पॉइंटर एक वेरिएबल है जो दूसरे वेरिएबल का पता स्टोर करता है। निम्नलिखित स्टेटमेंट पर विचार करें: int qty = 179; पॉइंटर घोषित करना पॉइंटर घोषित करने का सिंटैक्स निम्नलिखित है: int *p; यहां, p एक पॉइंटर वेरिएबल है जो दूसरे वेरिएबल का पता रखता है। पॉइंटर का इनिशियलाइज़ेशन एड्रेस ऑपरेटर

  1. C भाषा में लीनियर सर्च का उपयोग करके ऐरे में न्यूनतम एलिमेंट कैसे खोजें? C भाषा में लीनियर सर्च का उपयोग करके ऐरे में न्यूनतम एलिमेंट कैसे खोजें?

    C प्रोग्रामिंग भाषा दो प्रकार की सर्चिंग तकनीक प्रदान करती है: लीनियर सर्च बाइनरी सर्च लीनियर सर्च की एलिमेंट की खोज लीनियर फैशन में की जाती है। यह सबसे सरल सर्चिंग तकनीक है। इसके लिए लिस्ट के सॉर्टेड होने की आवश्यकता नहीं होती। सीमा - यह अधिक समय लेता है और सिस्टम की शक्ति को कम करता है। इनपु