Array de sufixos
Tipe Array
Inventado por Manber & Myers (1990)
Complexidade de tempo
em Notação Grande-O
Média Pior caso
Espaço
Construção

Em ciência da computação, um array de sufixos é um array ordenado de todos os sufixos de uma cadeia de caracteres. É uma estrutura de dados simples, porém poderosa que é usada, dentre outras, em índices de textos inteiros, algoritmos de compressão de dados e dentro do campo da bioinformática.[1]

Arrays de sufixos foram introduzidos por Manber & Myers (1990) como uma alternativa simples e eficiente em termos de espaço a árvore de sufixos. Eles foram descobertos independentemente por Gonnet, Baeza-Yates & Snider (1992) sob o noe array PAT.

Definição

editar

Seja uma cadeia de caracteres e seja a subcadeia de que vai de até .

O array de sufixos de é definido como sendo um array de inteiros que proveem as posições iniciais dos sufixos de em ordem lexicográfica. Isto significa que uma entrada contem a posição inicial do -ésimo menor sufixo em e, da mesma forma, para todo : .

Exemplo

editar

Considere o texto S=banana$ a ser indexado:

i 1 2 3 4 5 6 7
S[i] b a n a n a $

O texto termina com a letra sentinela especial $, que é único e lexicograficamente menor do que qualquer outro caractere. O texto possui os seguintes sufixos:

Suffix i
banana$ 1
anana$ 2
nana$ 3
ana$ 4
na$ 5
a$ 6
$ 7

Estes sufixos podem ser ordenados:

Suffix i
$ 7
a$ 6
ana$ 4
anana$ 2
banana$ 1
na$ 5
nana$ 3

O array de sufixos A contém a posição inicial destes sufixos ordenados:

i 1 2 3 4 5 6 7
A[i] 7 6 4 2 1 5 3

Array completo com os próprios sufixos:

i 1 2 3 4 5 6 7
A[i] 7 6 4 2 1 5 3
1 $ a a a b n n
2 $ n n a a a
3 a a n $ n
4 $ n a a
5 a n $
6 $ a
7 $

Então por exemplo, A[3] contém o valor 4, e por isso, se refere ao sufixo iniciando na posição 4 dentro de S, que é o sufixo ana$.

Notas

editar

Referências

editar

📚 Artikel Terkait di Wikipedia

RAID

significados, veja Raid. RAID foi originalmente denominado de "Redundant Array of Inexpensive Drives" (Conjunto Redundante de Discos Baratos). Com o tempo

R (linguagem de programação)

of complex numbers Z ← 0 # initialize Z to zero X ← array(0, c(m,m,50)) # initialize output 3D array for (k in 1:50) { # loop with 50 iterations Z ← Z^2+C

Rússia

de março de 2010). «DNA from bone shows new human forerunner, and raises array of questions». Washington Post  Belinskij A, Härke, H (1999). «The 'Princess'

Computação paralela

Highly parallel computing (em inglês). Redwood City, Calif.: Benjamin/Cummings. ISBN 978-0-8053-0177-9  S.V. Adve et al. (November 2008). "Parallel Computing

Modelos de linguagem de grande escala

de dados. Como os LLMs geralmente exigem que a entrada seja um arranjo (array) que não seja irregular, os textos mais curtos devem ser preenchidos ("padded")

Ilse Ipsen

com a tese Systolic Arrays for VSLI and concerned Very Large Scale Integration hardware implementations of the systolic array parallel computing architecture

Prêmio Seymour Cray

contributions to the foundation and practice of high performance computing in array and very long instruction word (VLIW) processing especially for use in interactive

Eletromagnetismo clássico e relatividade especial

{\begin{aligned}\mathbf {E_{\parallel }} '&=\mathbf {E_{\parallel }} \\\mathbf {B_{\parallel }} '&=\mathbf {B_{\parallel }} \\\mathbf {E_{\bot }} '&=\gamma