Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Байер Р. және Дж . Мур алгоритмі.






Байер Р. жә не Дж. Мур алгоритмі аз уақ ыттық шығ ындарды талап етеді. Жолдары іздеу s басталады, бірақ ізделініп отырғ ан ішкі жол x ү шін ө лшемі 256 (барлық мү мкін символдар саны) тең кесте қ ұ рылады. Кесте элементтері ізделініп отырғ ан ішкі соң ғ ы жол x-тен оның ә рбір символына дейінгі ара қ ашық тық (Егер x бірдей символдардан кездессе, онда кестеге ара қ ашық тық ғ ы ең жақ ыны енгізіледі). Егер x символы кірмесе, онда кестенің сә йкес ұ яшығ ына ұ зындығ ы m болатын х –ішкі жолы енгізіледі. Келесі ішкі жол индексі, келесі s символымен сә йкес келмесе, онда лайық ты ара қ ашық тық анық талады, содан кейін x лайық ты санның оң жағ ына жылжытылады. Осы арқ ылы іздеу уақ ыты қ ысқ артылады.

Мейлі s ='' МИЛА МАЛО МЫЛАСЬ МЫЛОМ', x='МЫЛО'.

х ұ зындығ ы 4-ке тең. Ара қ ашық тық кестесін қ ұ рамыз.

 

М Ы Л О
       

 

Ара қ ашық тық m-j символына дейін, мұ ндағ ы j - индекс, ал m - x-жолының ұ зындығ ы.

Ара қ ашық тық кестесі (sd):

 

Символ Қ ашық тық
... ...
А  
... ...
К  
Л  
М  
Н  
О  
П  
... ...
Ъ  
Ы  
Ь  
... ...

 

Барлық кө рсетілмеген символдардың ара қ ашық тығ ы бірдей, олар 4-ке тең.

Ұ зындығ ы m ү зінділерді s жолынан белгілейміз жә не жү йелі тү рде салыстырамыз, соң ынан бастап, х символына лайық тыларын. j - нө мірі ө ң делген х жолдарының символы. s қ а лайық ты келесі символ нө мерін анық тау ү шін, s-тың қ ай позициядан бастап қ аралатынын білу керек. Ө ң делетін бө ліктің бірінші символын i арқ ылы белгілейміз. Онда s жолынан басталатын, x символының лайық ты j – нө мері, как i+j арқ ылы анық талады.

Қ адам 1. i=0, m=4. s –тің бірінші 4 символын жә не x жолын қ арастырамыз. Салыстыруды соң ынан бастаймыз, яғ ни j =4, j=4, s[i+j]< > x[j] (s[4]< > x[4]). Демек онан ә рі салыстырмауғ а да болады, себебі мынау s жол ү зіндісі, ізделіп отырғ ан ішкі жолм бола алмайды (кем дегенде бір сә йкессіздік болады). Сондық тан келесі ү зіндіге ө теміз.

Қ адам 2. Енді ү зіндінің бірінзші символының нө мірін анық тау керек. Мынаны байқ аймыз, х-те соң ғ ы фрагмент S ('А') жоқ, яғ ни келесі 2-ші, 3-ші, 4-ші фрагменттерден оны қ арамау керек, бірден 5-ші позицияғ а кө шу керек. Бұ л жағ дайда і-дің жаң а мә ні не SD ['А'] ескі мә ні қ осылады.

Сайып келгенде, s жолының жаң а ү зіндісі -' мал ' болады. Соң ынан бастап жаң а салыстыруды бастаймыз. 'Л'< > 'О' болғ андық тан бұ л бө лікті қ арастырмауғ а болады.

Қ адам 3. 'Л' символы ізделіп отырғ ан жолда бар, онда ол соң ғ ының алдындағ ысы болуы мү мкін. Демек жаң а мә н i=5 (4+sd['Л']=4+1 арқ ылы анық талады).

Анық тап қ араймыз, 'МАЛО'и 'МЫЛО': s[9]=x[4], s[8]=x[3], s[7]< > x[2] ('A'< > 'Ы'), бұ л ізделініп отырғ ан s жол ү зіндісіне келмейді.

Қ адам 4. Тө ртінші ү зінді (i=9) 'МЫЛ ''(қ адам 2 қ ара) x-ен қ айтадан сә йкес келмейді.

Қ адам 5. Келесі ү зінді i=9+sd['л']=10 -'мыло'. Бірінші салыстырудан кейін айтуғ а болады, бұ л да сә йкес келмейді.

Қ адам 6. i =14. Ү зінді ''СЬ М'' бірінші салыстырудан кейін ө ткіземіз.

Қ адам 7. i =17 (14+ sd [' m ']=14+3). Салыстыруы 'МЫЛО' жә не 'МЫЛО':

s[17+4]=x[4]

s[17+3]=x[3] => ізделінгін жол мына позициядан табылғ ан 17+1=18 (i-1).

s[17+2]=x[2]

s[17+1]=x[1]

Есеп шығ арылды.

Мақ сат шешілген.

Бұ л процесті схема тү рінде былай кө руге болады (қ алың ә ріппен сә йкес келулері белгіленген, екі рет астын сызумен –сә йкес еместері белгіленген);

 

МИЛА МАЛО МЫЛАСЬ МЫЛОМ

МЫЛО | 1

|МЫЛО| 2

|МЫЛО|

|МЫЛО| 3

|МЫЛО|

|МЫЛО| 4

|МЫЛО| 5

|МЫЛО| 6

|МЫЛО|

|МЫЛО| 7

|МЫЛО|

|МЫЛО|

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.