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

C प्रोग्राम में pthread का उपयोग करके बाइनरी सर्च


परिचय

हम जानते हैं कि बाइनरी सर्च दृष्टिकोण सबसे उपयुक्त और प्रभावी सॉर्टिंग एल्गोरिदम में से एक है। यह सॉर्टेड अनुक्रम पर काम करता है। एल्गोरिदम सरल है, यह मध्य से तत्व ढूंढता है, फिर सूची को दो भागों में विभाजित करता है, और बाएं उप-सूची या दाएं उप-सूची की ओर बढ़ता है।

हम इसका एल्गोरिदम जानते हैं। अब हम देखेंगे कि मल्टीथ्रेडिंग वातावरण में बाइनरी सर्च तकनीक का उपयोग कैसे करें। थ्रेड्स की संख्या सिस्टम में मौजूद कोर की संख्या पर निर्भर करती है। आइए कोड देखें।

C++ प्रोग्राम उदाहरण

#include <iostream>
#define MAX 16
#define MAX_THREAD 4
using namespace std;

int arr[] = { 1, 6, 8, 11, 13, 14, 15, 19, 21, 23, 26, 28, 31, 65, 108, 220 };
int key = 31;
bool found = false;
int part = 0;

void* binary_search(void* arg) {
    int thread_part = part++;
    int mid;
    int start = thread_part * (MAX / 4);
    int end = (thread_part + 1) * (MAX / 4);
    while (start < end && !found) {
        mid = (end - start) / 2 + start;
        if (arr[mid] == key) {
            found = true;
            break;
        }
        else if (arr[mid] > key)
            end = mid - 1;
        else
            start = mid + 1;
    }
}

main() {
    pthread_t threads[MAX_THREAD];
    for (int i = 0; i < MAX_THREAD; i++)
        pthread_create(&threads[i], NULL, binary_search, (void*)NULL);
    for (int i = 0; i < MAX_THREAD; i++)
        pthread_join(threads[i], NULL);
    if (found)
        cout << key << " array में मिला" << endl;
    else
        cout << key << " array में नहीं मिला" << endl;
}

आउटपुट

31 array में मिला
  1. इष्टतम बाइनरी सर्च ट्री इष्टतम बाइनरी सर्च ट्री

    i, तो c := cost[i, r-1] अन्यथा c := 0 यदि r < j, तो c := c + cost[r+1, j] c := c + i से j तक आवृत्ति का योग यदि c < cost[i, j], तो cost[i, j] := c

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

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

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

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