ტექსტის ძიების ალგორითმი არის ფუნდამენტური მეთოდი ტექსტის დამუშავებისა და ინფორმაციის მოძიებაში. ეს ალგორითმი საშუალებას გვაძლევს განვსაზღვროთ და ამოვიცნოთ ქვესტრიქონის(ან ნიმუშის) შემთხვევები ტექსტის უფრო დიდ ნაწილში.
Როგორ მუშაობს
- დაიწყეთ ტექსტის(ან დოკუმენტის) უფრო დიდი ნაწილით და საძიებელი ქვესტრიქით.
- თანმიმდევრულად გაიმეორეთ ტექსტის თითოეული სიმბოლო.
- შეადარეთ ქვესტრიქონი ტექსტის ნაწილთან, რომელსაც აქვს იგივე სიგრძე, როგორც ქვესტრიქონი. თუ მატჩი იპოვეს, ჩაწერეთ მიმდინარე პოზიცია.
- გადადით შემდეგ პოზიციაზე და განაგრძეთ შედარება.
მაგალითი
განვიხილოთ ტექსტი: "მოდით მოძებნოთ ქვესტრიქონი ამ ტექსტში, რათა ვნახოთ როგორ მუშაობს ალგორითმი."
და ქვესტრიქონი მოსაძებნად: "substring"
- დაიწყეთ 0 პოზიციიდან. შეადარეთ
Let'
"substring". არანაირი მატჩი. - გადავიდეთ პოზიციაზე 1. შეადარეთ
et's
"substring". არანაირი მატჩი. - გადადით მე-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.
ქვესტრიქონი "substring" გვხვდება ტექსტში 27 პოზიციაზე.
კოდის მაგალითი C++-ში
ამ მაგალითში textSearch
ფუნქცია გამოიყენება ტექსტში ქვესტრიქონის "substring" პოზიციების მოსაძებნად. შედეგი იქნება ვექტორი, რომელიც შეიცავს მატჩების სასტარტო პოზიციებს.