Кнут-Моррис-Пратт алгоритмі

Уикипедия — ашық энциклопедиясынан алынған мәлімет
Навигацияға өту Іздеуге өту

Кнут — Моррис — Пратт алгоритмі (КМП-алгоритм) — берілген текст жолында ішкі жол тармағын табу алгоритмін айтамыз.

Алгоритмді алғаш ашқан американ ғалымдары Дональд Кнут және Вон Пратт еді, олар жеке дара өз бетімен тапқан Джеймс Моррис болды.[1]. Өз еңбектірінің жемісін олар 1977 басып шығарды.[2].

Есептің берілуі[өңдеу | қайнарын өңдеу]

Мысалы жолы ағылш. text және жол тармағы ағылш. substring берілсін. жолда - жол тармағының қай жерінен басталып жазылған орнын немесе индексін табу керек.

Егер  жолында — тармақ жолы табылмаған болса, онда бұл жолдың ішінде болмайтын бір кері индекс беру керек.

Егер керек болған жағдайда әр жол тармағының берілген текст орныныда бар ма екенін бақалып отыру үшін қосымша функция құруға болады.

Тағы қараңыз[өңдеу | қайнарын өңдеу]

  • Префикс-функциясы
  • Z-функциясы
  • Бойер — Мур алгоритмі
  • Ахо — Корасик алгоритмі

Сыртқы сілттемелер[өңдеу | қайнарын өңдеу]

  1. Үлгі:Кітап:CLRS
  2. Donald Knuth; James H. Morris, Jr, Vaughan Pratt (1977). "Fast pattern matching in strings". SIAM Journal on Computing 6 (2): 323–350. doi:10.1137/0206024. http://citeseer.ist.psu.edu/context/23820/0. 

Сілттемелер[өңдеу | қайнарын өңдеу]