String Matching - Horspool's Algorithm
Horspool’s Algorithm Bu konuda brute force string matching algoritmasına alternatif olarak kullanabilecek daha etkin bir algoritma olan Horspool Algoritması açıklanmaktadır. Brute-Force’a benzer şekilde pattern’in son harfinden başlanarak soldan sağa doğru pattern ve text’te karşılıklı denk gelen harfler karşılaştırılır. Eğer pattern’deki tüm karakterlerin eşleşmesi sağlanırsa substring bulunmuş demektir. Bu durumda arama durdurulabilir veya başka eşleşme var mı diye aramaya devam edilebilir. Eşleşme olmazsa pattern’i sağa kaydırmamız gerekir. Bu durumda herhangi bir eşleşmeyi kaçırma olasılığını riske atmadan yapabileceğimiz en büyük olası kaydırmayı yapmak isteriz. Horspool algoritması burada pattern’in son karakterine karşılık gelen (c) karakterine bakarak kaydırma yapar. Burada dört olasılık söz konusudur. Bu durumlardan ilerideki sayfalarda bahsedilecek. BARBER pattern’ini bir text’te aradığımızı düşünelim. Pa