Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Boyer-Moore Algoritması ve Analizi Kerem ERZURUMLU.

Benzer bir sunumlar


... konulu sunumlar: "Boyer-Moore Algoritması ve Analizi Kerem ERZURUMLU."— Sunum transkripti:

1 Boyer-Moore Algoritması ve Analizi Kerem ERZURUMLU

2 Sunum Planı Temel Tanımlar Basit Bir Arama Algoritması Algoritma Analizi Boyer-Moore Arama Algoritması Algoritma Analizi Sonuç

3 Temel Tanımlar Metin arama algoritması üzerinde Aranan : Aranmakta olan kelime Metin : Aranan kelimenin arandığı katar olarak anılacaktır

4 Basit Bir Arama Algoritması - I Düz mantık ile yaratılacak olan ilk algoritma; for(i=0;i

5 Basit Bir Arama Algoritması - II Algoritma metin içindeki her harf için en az 1 defa çağırılacaktır En kötü durumu sürekli tekrar eden bir harf kümesi içindir aaaaaaaaaaaa içerisinde aab aranması En kötü durum için algotirma karmaşıklığı O(n*m) olacaktır En iyi durum için (arananın ilk harfinin metin’de olmaması) karmaşıklığı O(n) olacaktır

6 Boyer-Moore Algoritması - I Arama işleminin daha akıllı yapılmasına dayanır Birinci amaç metin’in ilgili konumunun aranan’da hangi konum olabileceğini tahmin etmekdir İkinci amaç metin’in bir an önce sonuna ulaşmaktır Arama öncesi işlemler O(m) karmaşıklığındadır

7 Boyer-Moore Algoritması - II Öncelikle aranan kelimedeki harflerin kaçıncı konumda oldukları bulunur Aranan kelimenin uzunluğu kadar atlanır Metin’deki mevcut konumdaki harf uyuyorsa Bir önceki harfe bakılır Uymuyorsa Metin’den alınan harfin aranan’da kaçıncı harf olduğuna bakılarak aranan boyundan bu sayı eksiği kadar ileri atlanır.

8 Boyer-Moore Algoritması - III Uymuyorsa? Aranan: “ Zerrin ” Metin: “K erem ile Zerrin’i gördüm. ” İlk deneme; “ kerem ile Zerrin... ” Zerrin

9 Boyer-Moore Algoritması - IV “Kerem ile Zerrin’i gördüm” Zerrin ‘e’ ve ‘n’,‘e’ arananın 2 harfi Zerrin Zerrin ‘ ’ ve ‘n’ ‘ ’ arananın bir parçası değil

10 Boyer-Moore Algoritması - V char *search(char *pat,char *text,int n) {int i, j, k, m, skip[MAXCHAR]; m = strlen(pat); if( m==0 ) return( text ); for( k=0; k=0 && text[i] == pat[j]; j-- ) i--; if( j == (-1) ) return( text+i+1 ); } return( NULL ); }

11 Boyer-Moore Algoritması - V Arama öncesi işlem O(m) En kötü durum Metin: “aaaaaaaaabaa” Aranan:“baa” O(n*m) En iyi durum O(n/m) Ortalama durumda O()

12 Kaynakça Introduction Algorithms Thomas H. Cormen, Charles R. Leisersen, ronald L. Rivest, mlv.fr/~lecroq/string/node14.html lsi.upc.es/~rbaeza/handbook/algs/7/713b.srch.c. html l


"Boyer-Moore Algoritması ve Analizi Kerem ERZURUMLU." indir ppt

Benzer bir sunumlar


Google Reklamları