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

C++ में बाइनरी सर्च का उपयोग करके स्ट्रिंग खोजना


स्ट्रिंग में बाइनरी सर्च में, हमें स्ट्रिंग्स का एक सॉर्टेड ऐरे दिया जाता है और हमें बाइनरी सर्च एल्गोरिदम का उपयोग करके स्ट्रिंग्स के ऐरे में एक स्ट्रिंग को खोजना होता है।

उदाहरण

इनपुट: stringArray = {"I", "Love", "Programming", "tutorials", "point"}. 
एलिमेंट = "programming" 
आउटपुट: स्ट्रिंग इंडेक्स 3 पर मिली 
व्याख्या: स्ट्रिंग का इंडेक्स 3 है। 
इनपुट: stringArray = {"I", "Love", "Programming", "tutorials", "point"}. 
एलिमेंट = "coding" 
आउटपुट: -1 'स्ट्रिंग नहीं मिली'

बाइनरी सर्च एक खोज तकनीक है जो ऐरे के मध्य को ढूंढकर एलिमेंट को खोजती है।

स्ट्रिंग्स के ऐरे के लिए भी बाइनरी सर्च एल्गोरिदम समान रहेगा। लेकिन की जाने वाली तुलनाएं स्ट्रिंग तुलना पर आधारित होंगी। स्ट्रिंग तुलना स्ट्रिंग्स के पहले कैरेक्टर की जांच करती है और उनकी तुलना करती है। यदि कैरेक्टर समान हैं तो यह अगले पर जाता है और इसी तरह।

एल्गोरिदम

arrString: सॉर्टेड स्ट्रिंग्स का ऐरे 
Lower = 0; upper = n (ऐरे की लंबाई) 
Element = खोजी जाने वाली स्ट्रिंग 
चरण 1: जब तक एलिमेंट नहीं मिल जाता। करें: 
चरण 2: mid = lower + (upper - lower) / 2; 
चरण 3: यदि arrString[mid] = element, mid लौटाएं और बाहर निकलें 
चरण 4: यदि arrString[mid] < element, lower = mid+1 
चरण 5: यदि arrString[mid] > element, upper = mid-1 
चरण 6: upper < lower, -1 लौटाएं, बाहर निकलें।

उदाहरण

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

int binarySearchString(string arr[], string x, int n) { 
    int lower = 0; 
    int upper = n - 1; 
    while (lower <= upper) { 
        int mid = lower + (upper - lower) / 2; 
        int res; 
        if (x == (arr[mid])) 
            res = 0; 
        if (res == 0) 
            return mid; 
        if (x > (arr[mid])) 
            lower = mid + 1; 
        else 
            upper = mid - 1; 
    } 
    return -1; 
} 

int main() { 
    string arr[] = {"I", "Love", "Programming", "tutorials", "point"}; 
    string x = "Programming"; 
    int n = 4; 
    int result = binarySearchString(arr, x, n); 
    if (result == -1) 
        cout << ("Element not present"); 
    else 
        cout << ("Element found at index ") << result; 
}

आउटपुट

Element found at index 2

  1. C++ में बाइनरी ट्री को बाइनरी सर्च ट्री में रूपांतरण C++ में बाइनरी ट्री को बाइनरी सर्च ट्री में रूपांतरण

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

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

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

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

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