Busca em texto com o método de Boyer Moore
Publicado por Danilo Azevedo em 23/07/2014
[ Hits: 6.153 ]
1 2 3 4 5 ... 35 String: W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T 1 2 3 4 5 6 7 Padrão: A T - T H A TFórmulas (usando o padrão):
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 1Calcular o delta2(6): procurar o sufixo de A, que não tenha A como prefixo.
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 4 1Calcular o delta2(5): procurar o sufixo de H, que não tenha tenha H como prefixo.
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 7 4 1Calcular o delta2(4): procurar sufixo de T, que não tenha T como prefixo.
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 8 7 4 1Calcular o delta2(3): ...
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T T H A TE portanto, o T H A T no índice -1
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 9 8 7 4 1Calcular o delta2(2) e delta2(1): dá trabalho.
-3 -2 -1 0 1 2 3 4 5 6 7 $ $ $ $ A T - T H A T 11 10 9 8 7 4 1Utilizando delta1 e delta2 para achar o padrão:
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A TF não ocorre no padrão, logo, delta1(F) = 7
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A T A T - T H A TOs caracteres não batem (não utiliza delta2), utilizamos o delta1 do caractere encontrado, delta1(-) = 4:
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A T A T - T H A T A T - T H A T |Os caracteres batem (T e T), utilizamos o máximo entre delta1 e delta2. o sufixo é o T (paramos no A)
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A T A T - T H A T A T - T H A T A T - T H A T |Os caracteres batem até o caractere A, logo, utilizamos o delta2 que tem sufixo A T (o delta2(5)= 7).
1 2 3 4 5 ... 35 W H I C H - F I N A L L Y - H A L T S . - - A T - T H A T - P O I N T A T - T H A T A T - T H A T A T - T H A T A T - T H A T A T - T H A T
Alterar tema do GDM no Ubuntu 9.10
OpenSUSE Education Li-f-e 11.3 - Excelente distribuição para uso educacional, técnico e científico
Yum - Uma boa ferramenta de instalação de pacotes para o Fedora
O que é o THP na configuração de RAM do Linux e quando desabilitá-lo
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Deixando o Plasma6 mais fluido no Linux
Como unir duas coleções de ROMs preservando as versões traduzidas (sem duplicatas)
Isso acontece com vcs também? (7)
Problema com audio apos upgrade (10)
Instalação automatizada do Debian 12 em UEFI (2)