TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

O Algoritmo Shift-end

Por:   •  21/9/2019  •  Trabalho acadêmico  •  564 Palavras (3 Páginas)  •  269 Visualizações

Página 1 de 3

SHIFT END EXATO(MÁSCARA)

/* Procedimento que realiza o pre-processamento do padrao, construindo

* as mascaras para cada caractere do alfabeto.

*/

void shiftAndPreprocess() {

int j, k=1;

char a;

for (j=0; j<m; j++){ // anel do pre-processamento

a=p[j]; // recupera o j-esimo caractere do padrão

ch[a]|=k; // atribui 1 ao j-esimo bit do j-esimo

// caractere do padrao

lastbit=k;

k<<=1;

}

SHIFT END EXATO

/* Procedimento que realiza a busca exata de um padrao na

* colecao de textos.

*/

void shiftAndSearch() {

int i, r=0 // registrador que representa o automato

for (i=0; i < 256; i++) ch[i]= 0; // Incializa o alfabeto com mascara

// de valor zero (0).

shiftAndPreprocess(); // Realiza o pre-processamento do padrao

for (i=0; i<n; i++){

r=((r<<1) | 1) & ch[t[i]]; // Deslocamento para a esquerda (uma vez

// que o registrador esta invertido) e

// execucao de um "and" com a mascara do

// caractere corrente.

if ((r & lastbit)!=0)

output(i-m+1); // Testa se o ultimo bit do

// registrador foi alcancado,

// que define o casamento

}

}

...

Baixar como (para membros premium)  txt (1.5 Kb)   pdf (29.2 Kb)   docx (7.4 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com