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

C++ STL में बाइनरी सर्च फंक्शन

बाइनरी सर्च एक खोज एल्गोरिदम है जो सॉर्टेड ऐरे के भीतर लक्ष्य मान की स्थिति ढूंढता है। बाइनरी सर्च लक्ष्य मान की तुलना सॉर्टेड ऐरे के मध्य तत्व से करता है। बाइनरी सर्च की समय जटिलता O(log n) है। यह एक C++ प्रोग्राम है जिसमें हम C++ STL में विभिन्न बाइनरी सर्च फंक्शन को लागू करते हैं।

एल्गोरिदम

Begin
    पूर्णांक मानों के वेक्टर को इनिशियलाइज़ करें।
    यहां उपयोग किए गए फंक्शन हैं:
    binary_search(start_pointer, end_pointer, value) = यदि मान ऐरे में मौजूद है तो true लौटाता है अन्यथा false।
    lower_bound(start_pointer, end_pointer, value) = "मान की स्थिति" का पॉइंटर लौटाता है यदि कंटेनर में मान का 1 occurrence है। "मान की पहली स्थिति" का पॉइंटर लौटाता है यदि कंटेनर में मान के एकाधिक occurrence हैं। "मान से अगली बड़ी संख्या की स्थिति" का पॉइंटर लौटाता है यदि कंटेनर में मान का कोई occurrence नहीं है।
    upper_bound(start_pointer, end_pointer, value) = "मान से अगले बड़े मान की स्थिति" का पॉइंटर लौटाता है यदि कंटेनर में मान का 1 occurrence है। "मान के अंतिम occurrence से अगली बड़ी संख्या की पहली स्थिति" का पॉइंटर लौटाता है यदि कंटेनर में मान के एकाधिक occurrence हैं। "मान से अगली बड़ी संख्या की स्थिति" का पॉइंटर लौटाता है यदि कंटेनर में मान का कोई occurrence नहीं है।
    परिणाम प्रिंट करें।
End.

उदाहरण कोड

#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> a = {6, 7, 10, 14, 16, 20};

    if (binary_search(a.begin(), a.end(), 50))
        cout << "50 exists in vector";
    else
        cout << "50 does not exist";
    cout << endl;

    if (binary_search(a.begin(), a.end(), 7))
        cout << "7 exists in the vector";
    else
        cout << "7 does not exist";
    cout << endl;

    cout << "The position of 7 using lower_bound ";
    cout << lower_bound(a.begin(), a.end(), 7) - a.begin();
    cout << endl;

    cout << "The position of 7 using upper_bound ";
    cout << upper_bound(a.begin(), a.end(), 7) - a.begin();
    cout << endl;
}

आउटपुट

50 does not exist
7 exists in the vector
The position of 7 using lower_bound 1
The position of 7 using upper_bound 2
  1. C++ में बाइनरी ट्री को बाइनरी सर्च ट्री में रूपांतरण C++ में बाइनरी ट्री को बाइनरी सर्च ट्री में रूपांतरण

    एक बाइनरी ट्री एक विशेष प्रकार का ट्री है जिसमें ट्री का प्रत्येक नोड अधिकतम दो चाइल्ड नोड रख सकता है। इन चाइल्ड नोड्स को राइट चाइल्ड और लेफ्ट चाइल्ड के नाम से जाना जाता है। एक साधारण बाइनरी ट्री है - बाइनरी सर्च ट्री (BST) एक विशेष प्रकार का ट्री है जो निम्नलिखित नियमों का पालन करता है - बाएं चाइ

  1. C++ में बाइनरी सर्च ट्री में न्यूनतम मान वाला नोड ज्ञात करें C++ में बाइनरी सर्च ट्री में न्यूनतम मान वाला नोड ज्ञात करें

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री है। हमें बाइनरी सर्च ट्री में न्यूनतम तत्व ढूंढना है। इसलिए यदि BST नीचे की तरह है: न्यूनतम तत्व 1 होगा। जैसा कि हम जानते हैं कि बायां उपट्री हमेशा छोटे तत्वों को धारण करता है। इसलिए यदि हम बाएं उपट्री के माध्यम से तब तक ट्रैवर्स करते हैं जब तक बायां NULL नही

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

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