Pagini recente » Diferente pentru utilizator/vasi1186 intre reviziile 2 si 3 | Atasamentele paginii Profil Daniciuc | Istoria paginii utilizator/andy1496 | Diferente pentru runda/a intre reviziile 1 si 2 | Diferente pentru siruri-de-sufixe intre reviziile 9 si 10
Nu exista diferente intre titluri.
Diferente intre continut:
Pentru a trece de la pasul $k$ la pasul $k+1$ se concateneaza toate secventele $A{~i~}^k^$ cu $A{~i+2^k^~}^ k^$, obtinandu-se astfel substringurile de lungime $2k+1$. Pentru stabilirea ordinii se folosesc informatiile obtinute la pasul anterior. Pentru fiecare indice $i$ se pastreaza o pereche de intregi formata din $P{~(k,i)~}$ si $P{~(k,i+2^k^)~}$. Nu trebuie sa ne preocupe faptul ca $i+2k$ poate pica in afara sirului, deoarece vom completa sirul cu pseudocaracterul {@$@}, despre care vom considera ca este lexicografic mai mic decat oricare alt caracter. In urma sortarii, perechile vor fi aranjate conform ordinii lexicografice a substringurilor de lungime $2k+1$ corespunzatoare. Un ultim lucru care mai trebuie notat este ca la un anumit pas $k$, pot exista doua (sau mai multe) substringuri $A{~i~}^k^$ = $A{~j~}^k^$, iar acestea trebuie etichetate identic ({$P{~(k,i)~}$} trebuie sa fie egal cu {$P{~(k,j)~}$}). O imagine spune mai mult decat o mie de cuvinte:
|_. b |_. o |_. b |_. o |_. c |_. e |_. l |
Pasul 0:
|_. $0$ |_. $4$ |_. $0$ |_. $4$ |_. $1$ |_. $2$ |_. $3$ |
| b | o | b | o | c | e | l |
Pasul 1:
|_. $0$ |_. $4$ |_. $0$ |_. $5$ |_. $1$ |_. $2$ |_. $3$ |
| b | o | b | o | c | e | l |
| o | b | o | c | e | l | {@$@} |
Pasul 2:
|_. $0$ |_. $5$ |_. $1$ |_. $6$ |_. $2$ |_. $3$ |_. $4$ |
| b | o | b | o | c | e | l |
| o | b | o | c | e | l | {@$@} |
| b | o | c | e | l | {@$@} | {@$@} |
| o | c | e | l | {@$@} | {@$@} | {@$@} |
Pasul 2:
|_. $0$ |_. $5$ |_. $1$ |_. $6$ |_. $2$ |_. $3$ |_. $4$ |
| b | o | b | o | c | e | l |
| o | b | o | c | e | l | {@$@} |
| b | o | c | e | l | {@$@} | {@$@} |
| o | c | e | l | {@$@} | {@$@} | {@$@} |
| c | e | l | {@$@} | {@$@} | {@$@} | {@$@} |
| e | l | {@$@} | {@$@} | {@$@} | {@$@} | {@$@} |
| l | {@$@} | {@$@} | {@$@} | {@$@} | {@$@} | {@$@} |
| {@$@} | {@$@} | {@$@} | {@$@} | {@$@} | {@$@} | {@$@} |
Iata un pseudocod ce sugereaza pasii principali ce trebuie urmati:
== code(c) |
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.