שאלת מבחן במבני נתונים - אוניברסיטת בר-אילן 2015 - Boyer-Moore
נתונה התבנית מעל אלף-בית . בנו את טבלאות ו- מהאלגוריתם של Boyer & Moore עבור התבנית הנתונה.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | A | B | A | A | A | B | A | A | B | A | A | |
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
אוניברסיטת בר-אילןמועד א · 2015 · סמסטר ב
★★★★★
Boyer-Mooreחיפוש מחרוזות
עבור טבלת , מצאו את המופע האחרון של כל תו מהאלפבית בתבנית. עבור טבלת , חשבו את גודל ההזזה הנדרש עבור כל "סיומת טובה" אפשרית .
טבלת
— כלל התו הרע (Bad Character)הגדרה: , כאשר אם אינו מופיע בתבנית, .
כאן , והתבנית היא
| תו | ||||
|---|---|---|---|---|
| מיקום אחרון | 12 | 10 | — | — |
---
טבלת
— כלל הסיומת הטובה (Good Suffix)הגדרה: כאשר אי-התאמה מתרחשת במיקום , הסיומת כבר הותאמה. הוא ההזזה המינימלית כך שהתבנית המוזחת עדיין מכסה את הסיומת שהותאמה — על ידי מציאת הופעה חוזרת של הסיומת בתבנית (עם תו שונה לפניה), או הקידומת הארוכה ביותר של שהיא סיומת של .
חישוב לכל
:| הסיומת | חישוב | ||
|---|---|---|---|
| 12 | הזזה מינימלית | 1 | |
| 11 | A | A מופיע במיקום 8, לפניו → | 4 |
| 10 | AA | AA מסתיים במיקום 6, לפניו → | 6 |
| 9 | BAA | הופעה ב-7..9 אך (פסול); קידומת AA תואמת סיומת → | 10 |
| 8 | ABAA | הופעות ב-6..9, ב-2..5 כולן עם (פסולות); קידומת AA → | 10 |
| 7 | AABAA | AABAA = , ללא תו לפני (תחילת התבנית) → | 7 |
| 6 | BAABAA | אין הופעה נוספת; קידומת AA תואמת סיומת AA → | 10 |
| 5 | ABAABAA | קידומת AABAA= תואמת סיומת → | 7 |
| 4 | AABAABAA | קידומת AABAA= תואמת סיומת → | 7 |
| 3 | BAABAABAA | קידומת AABAA= תואמת סיומת → | 7 |
| 2 | ABAABAABAA | קידומת AABAA= תואמת סיומת → | 7 |
| 1 | AABAABAABAA | קידומת AABAA= תואמת סיומת → | 7 |
הטבלה המלאה:
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| A | A | B | A | A | A | B | A | A | B | A | A | |
| 7 | 7 | 7 | 7 | 7 | 10 | 7 | 10 | 10 | 6 | 4 | 1 |
הכלל הכולל: בכל שלב מחשבים ומזיזים את התבנית בהתאם.