Sirurile de caractere sunt de fapt tablouri de caractere, care au ca Ultim Element un Terminator de Sir, caracterul null. . Ultimul exemplu sugereaza ca se poate Merge mai departe cu deplasarile si ca in loc sa se realizeze deplasarea peste 5 pozitii, in aceasta situatie se poate face peste intregul modèle Deci D5 =-1 iar deplasarea se face peste 5 (1) = 6 pozitii. . Este foarte important de subliniat faptul ca de aici inainte nu i va fi indicele Care precizeaza pozitia Primului caracter al modelului dans Sir ci valoarea i-j. Se cauta dans le modèle cel mai mare d, adica cea mai Lunga secventa de caractere a modelului Care précde imediat pozitia j si care se potriveste ca un numar egal de caractere de la inceputul modelului. DIN cele expuse rezulta ca pentru a-l détermination PE d: acest lucru se intampla intrucat in cadrul modelului exista 2 subsecvente identice`ab`de lungime 2. Intrucat Valorile DJ depind numai si numai de Model, inaintea cautarii propriu-ZISE poate fi construit un tablou d Cu aceste Valori printr-un proces de precompilare a modelului. Daca la termina re i = n Si j < m, invariantul Q (i) implications absenta vreunei potriviri. Pentru a détermination valoarea lui d se prezinta doua exemple.

Daca se constata ca DJ = 0 si P0 = PJ, atunci se poate face DJ =-1 indicand deplasarea integrala a modelului fata de pozitia sa curenta in cadrul sirului s. Inventatorii demonstreaza ca numarul de comparatii de caractere este de ordinul n + m, CEEA CE reprezinta o imbunat atire substantiala fata de m * n. Daca Algoritmul se termina deoarece j = m, termenul P (i-j, j) Al invariantului devine P (i-m, m), CEEA CE conforme relatiei Care-l defineste PE P Indica o potrivire incepand de la pozitia i-m. Fig. 4.3.3. d. Déterminarea deplasamentului d. Cazul 1. I. 2. criterii suficiente de convergent sau de exister a limitei unui Sir Fraților, vă mulțumesc pentru că ați creat acest sait. Este extrem de util! De ce nu Scrieți voi și o carte, tot în acest fel, adică PE înțelesul tuturor? Probabil că ați face mai multi Bani decat faceți cu saitul.

. Pointerii Retin informatia de la o anumita adresa. Astfel, stiind ca functiile strtok, strchr si strstr returneaza adresa unor Elemente, pentru accesa informatia de la ACEA adresa este recomandat sa folosim un char * (pointeur catre un element de Tip Char). Se subliniaza faptul ca in continuare Q (i-j) si P (i-j, j) sunt invariatii Globali la Care se adauga relatiile 0 < i < n Si 0 < j < m. dupa fiecare nepotrivire, modelul este deplasat de-a lungul intregului Drum parcurs intrucat deplasari mai scurte nu ar putea conduisent la o potrivire totala [4.3.3. a]. Astfel dupa o potrivire partiala a inceputului modelului cu Sirul, de asemenea se subliniaza faptul ca pointerul i Care baleeaza Sirul nu fusionner niciodata inapoi spre deosebire de cautarea Directa, unde dupa o potrivire partiala se Reia cautarea cu modelul deplasat cu o pozitie, chiar daca o parte din caracterele sirului au fost deja parcurse. Analiza exacta a performantei cautarii de siruri Knuth-Morrison-Pratt este coupable algoritmului foarte sofisticata. . Fig.

4.3.3. b. Deplasarea modelului in cadrul sirului s. cazul 1. In aceasta situatie deplasarea nu se poate face peste toata lungimea modelului intrucat mai exista o toutefois de potrivire incepand de la i-2. Dans vederea determinarii valorii lui d trebuie lamurit rolul atribuirii j: = d. b) dupa efectuarea deplasarii avem din nou o potrivire la i-d de lungime d adica este valabil invariantul P (i-d, d) & Q (i-d). A Treia precompileaza modelul si Calculez Valorile DJ,. Este évidente ca este de Dorit ca deplasarea sa fie Cat mai Lunga si dans consecinta d Cat mai mic posibil.

Scroll Up