ટેક્સ્ટ સર્ચ અલ્ગોરિધમ એ ટેક્સ્ટ પ્રોસેસિંગ અને માહિતી પુનઃપ્રાપ્તિ માટેની મૂળભૂત પદ્ધતિ છે. આ અલ્ગોરિધમ અમને ટેક્સ્ટના મોટા ભાગમાં સબસ્ટ્રિંગ(અથવા પેટર્ન) ની ઘટનાઓ શોધવા અને ઓળખવા દે છે.
તે કેવી રીતે કામ કરે છે
- ટેક્સ્ટના મોટા ભાગ(અથવા દસ્તાવેજ) અને શોધવા માટે સબસ્ટ્રિંગ સાથે પ્રારંભ કરો.
- ટેક્સ્ટના દરેક અક્ષર દ્વારા ક્રમિક રીતે પુનરાવર્તન કરો.
- સબસ્ટ્રિંગની સમાન લંબાઈ ધરાવતા ટેક્સ્ટના એક ભાગ સાથે સબસ્ટ્રિંગની તુલના કરો. જો કોઈ મેળ મળે, તો વર્તમાન સ્થિતિ રેકોર્ડ કરો.
- આગલી સ્થિતિ પર જાઓ અને સરખામણી ચાલુ રાખો.
ઉદાહરણ
ટેક્સ્ટને ધ્યાનમાં લો: "ચાલો એલ્ગોરિધમ કેવી રીતે કાર્ય કરે છે તે જોવા માટે આ ટેક્સ્ટની અંદર સબસ્ટ્રિંગ શોધીએ."
અને શોધવા માટેની સબસ્ટ્રિંગ: "સબસ્ટ્રિંગ"
- પોઝિશન 0 થી શરૂ કરો.
Let'
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 1 પર જાઓ.
et's
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 2 પર જાઓ.
t's
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ મેળ નથી. - સ્થિતિ 3 પર જાઓ.
's s
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 4 પર જાઓ.
se
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 5 પર જાઓ.
sea
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - પોઝિશન 6 પર જાઓ.
earc
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 7 પર જાઓ.
arch
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 8 પર જાઓ.
rch
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ મેળ નથી. - સ્થિતિ 9 પર જાઓ.
ch w
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - પોઝિશન 10 પર જાઓ.
h wi
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 11 પર જાઓ.
wit
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ મેળ નથી. - પોઝિશન 12 પર જાઓ.
with
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - પોઝિશન 13 પર જાઓ.
ithi
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 14 પર જાઓ.
thin
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 15 પર જાઓ.
hinn
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 16 પર જાઓ.
in t
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 17 પર જાઓ.
n th
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 18 પર જાઓ.
thi
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ મેળ નથી. - સ્થિતિ 19 પર જાઓ.
this
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 20 પર જાઓ.
his
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ મેળ નથી. - સ્થિતિ 21 પર જાઓ.
is t
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થાન 22 પર જાઓ.
s te
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 23 પર જાઓ.
ubst
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 24 પર જાઓ.
bstr
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 25 પર જાઓ.
stre
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થાન 26 પર જાઓ.
trin
"સબસ્ટ્રિંગ" સાથે સરખામણી કરો. કોઈ સરખામણી નહીં. - સ્થિતિ 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
ફંક્શનનો ઉપયોગ ટેક્સ્ટની અંદર સબસ્ટ્રિંગ "સબસ્ટ્રિંગ" ની સ્થિતિ શોધવા માટે થાય છે. પરિણામ મેચોની પ્રારંભિક સ્થિતિ ધરાવતું વેક્ટર હશે.