C++ માં ટેક્સ્ટ શોધ (Text Search) અલ્ગોરિધમ- સમજૂતી, ઉદાહરણ અને કોડ

ટેક્સ્ટ સર્ચ અલ્ગોરિધમ એ ટેક્સ્ટ પ્રોસેસિંગ અને માહિતી પુનઃપ્રાપ્તિ માટેની મૂળભૂત પદ્ધતિ છે. આ અલ્ગોરિધમ અમને ટેક્સ્ટના મોટા ભાગમાં સબસ્ટ્રિંગ(અથવા પેટર્ન) ની ઘટનાઓ શોધવા અને ઓળખવા દે છે.

તે કેવી રીતે કામ કરે છે

  1. ટેક્સ્ટના મોટા ભાગ(અથવા દસ્તાવેજ) અને શોધવા માટે સબસ્ટ્રિંગ સાથે પ્રારંભ કરો.
  2. ટેક્સ્ટના દરેક અક્ષર દ્વારા ક્રમિક રીતે પુનરાવર્તન કરો.
  3. સબસ્ટ્રિંગની સમાન લંબાઈ ધરાવતા ટેક્સ્ટના એક ભાગ સાથે સબસ્ટ્રિંગની તુલના કરો. જો કોઈ મેળ મળે, તો વર્તમાન સ્થિતિ રેકોર્ડ કરો.
  4. આગલી સ્થિતિ પર જાઓ અને સરખામણી ચાલુ રાખો.

ઉદાહરણ

ટેક્સ્ટને ધ્યાનમાં લો: "ચાલો એલ્ગોરિધમ કેવી રીતે કાર્ય કરે છે તે જોવા માટે આ ટેક્સ્ટની અંદર સબસ્ટ્રિંગ શોધીએ."

અને શોધવા માટેની સબસ્ટ્રિંગ: "સબસ્ટ્રિંગ"

  1. પોઝિશન 0 થી શરૂ કરો. Let' "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  2. સ્થિતિ 1 પર જાઓ. et's "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  3. સ્થિતિ 2 પર જાઓ. t's "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ મેળ નથી.
  4. સ્થિતિ 3 પર જાઓ. 's s "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  5. સ્થિતિ 4 પર જાઓ. se "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  6. સ્થિતિ 5 પર જાઓ. sea "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  7. પોઝિશન 6 પર જાઓ. earc "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  8. સ્થિતિ 7 પર જાઓ. arch "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  9. સ્થિતિ 8 પર જાઓ. rch "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ મેળ નથી.
  10. સ્થિતિ 9 પર જાઓ. ch w "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  11. પોઝિશન 10 પર જાઓ. h wi "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  12. સ્થિતિ 11 પર જાઓ. wit "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ મેળ નથી.
  13. પોઝિશન 12 પર જાઓ. with "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  14. પોઝિશન 13 પર જાઓ. 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. સ્થિતિ 21 પર જાઓ. is t "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  23. સ્થાન 22 પર જાઓ. s te  "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  24. સ્થિતિ 23 પર જાઓ. ubst  "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  25. સ્થિતિ 24 પર જાઓ. bstr "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  26. સ્થિતિ 25 પર જાઓ. stre "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  27. સ્થાન 26 પર જાઓ. trin  "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં.
  28. સ્થિતિ 27 પર જાઓ. ring  "સબસ્ટ્રિંગ" સાથે સરખામણી કરો. મેચ મળી, રેકોર્ડ પોઝિશન 27.

સબસ્ટ્રિંગ "સબસ્ટ્રિંગ" ટેક્સ્ટની અંદર સ્થાન 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 ફંક્શનનો ઉપયોગ ટેક્સ્ટની અંદર સબસ્ટ્રિંગ "સબસ્ટ્રિંગ" ની સ્થિતિ શોધવા માટે થાય છે. પરિણામ મેચોની પ્રારંભિક સ્થિતિ ધરાવતું વેક્ટર હશે.