(Text Search) C++ मा पाठ खोज एल्गोरिदम- व्याख्या, उदाहरण र कोड

पाठ खोज एल्गोरिथ्म पाठ प्रशोधन र जानकारी पुन: प्राप्ति मा एक आधारभूत विधि हो। यो एल्गोरिदमले हामीलाई पाठको ठूलो टुक्रा भित्र सबस्ट्रिङ(वा ढाँचा) को घटनाहरू पत्ता लगाउन र पहिचान गर्न अनुमति दिन्छ।

यो कसरी काम गर्दछ

  1. पाठको ठूलो टुक्रा(वा कागजात) र खोजी गर्नको लागि सबस्ट्रिङबाट सुरु गर्नुहोस्।
  2. पाठको प्रत्येक क्यारेक्टरलाई क्रमिक रूपमा दोहोर्याउनुहोस्।
  3. सबस्ट्रिङको समान लम्बाइ भएको पाठको अंशसँग सबस्ट्रिङ तुलना गर्नुहोस्। यदि मिल्दो फेला पर्यो भने, हालको स्थिति रेकर्ड गर्नुहोस्।
  4. अर्को स्थितिमा जानुहोस् र तुलना जारी राख्नुहोस्।

उदाहरण

पाठलाई विचार गर्नुहोस्: "एल्गोरिथ्मले कसरी काम गर्छ भनेर हेर्न यो पाठ भित्र सबस्ट्रिङ खोजौं।"

र खोज्नको लागि सबस्ट्रिङ: "सबस्ट्रिंग"

  1. स्थिति ० मा सुरु गर्नुहोस्। Let' "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  2. स्थिति १ मा सार्नुहोस्। et's "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  3. स्थिति २ मा जानुहोस्। t's "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  4. स्थिति ३ मा सार्नुहोस्। 's s "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  5. स्थिति ४ मा सार्नुहोस्। se "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  6. स्थिति ५ मा जानुहोस्। sea "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  7. स्थिति 6 मा सार्नुहोस्। earc "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  8. स्थिति ७ मा सार्नुहोस्। arch "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  9. स्थिति 8 मा सार्नुहोस्। rch "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  10. स्थिति 9 मा सार्नुहोस्। ch w "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  11. स्थिति १० मा सार्नुहोस्। h wi "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  12. स्थिति 11 मा सार्नुहोस्। wit "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  13. स्थिति 12 मा सार्नुहोस्। with "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  14. स्थिति १३ मा सार्नुहोस्। ithi "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  15. स्थिति 14 मा सार्नुहोस्। thin "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  16. स्थिति 15 मा सार्नुहोस्। hinn "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  17. स्थिति 16 मा सार्नुहोस्। in t "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  18. स्थिति 17 मा सार्नुहोस्। n th "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  19. स्थिति 18 मा सार्नुहोस्। thi "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  20. स्थिति 19 मा सार्नुहोस्। this "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  21. स्थिति 20 मा सार्नुहोस्। his "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  22. स्थिति २१ मा सार्नुहोस्। is t "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  23. स्थिति 22 मा सार्नुहोस्। s te  "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  24. स्थिति २३ मा सार्नुहोस्। ubst  "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  25. स्थिति 24 मा सार्नुहोस्। bstr "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  26. स्थिति २५ मा जानुहोस्। stre "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  27. स्थिति 26 मा सार्नुहोस्। trin  "सबस्ट्रिंग" सँग तुलना गर्नुहोस्। कुनै मेल छैन।
  28. स्थिति २७ मा जानुहोस्। ring  "सबस्ट्रिङ" सँग तुलना गर्नुहोस्। मिलान फेला पर्यो, रेकर्ड स्थिति 27।

substring "substring" पाठ भित्र स्थिति 27 मा पाइन्छ।

C++ मा उदाहरण कोड

#include <iostream>  
#include <string>  
#include <vector>  
  
std::vector<int> textSearch(const std::string& text, const std::string& query) {  
    std::vector<int> positions;  
  
    for(int i = 0; i <= text.length()- query.length(); ++i) {  
        int j = 0;  
        while(j < query.length() && text[i + j] == query[j]) {  
            ++j;  
        }  
        if(j == query.length()) {  
            positions.push_back(i);  
        }  
    }  
  
    return positions;  
}  
  
int main() {  
    std::string text = "Let's search for a substring within this text to see how the algorithm works.";  
    std::string query = "substring";  
  
    std::vector<int> result = textSearch(text, query);  
  
    std::cout << "Substring found at positions: ";  
    for(int pos: result) {  
        std::cout << pos << ";  
    }  
    std::cout << std::endl;  
  
    return 0;  
}  

यस उदाहरणमा, textSearch प्रकार्य पाठ भित्र सबस्ट्रिङ "सबस्ट्रिङ" को स्थिति पत्ता लगाउन प्रयोग गरिन्छ। नतिजा एक भेक्टर हुनेछ जसमा खेलहरूको सुरुवात स्थितिहरू छन्।