Algoritmos 2 buscas
As buscas estão entre as tarefas mais freqüentemente encontradas em programação de computadores. Há diversas variações básicas sobre o assunto e uma grande variedade de algoritmos. Dado um vetor t de N elementos e um vetor p de M elementos, onde 0 < M N,
#define
#define typedef typedef
MaxN
MaxM
char char 100
10
TipoPadrao[MaxM];
TipoTexto[MaxN];
A tarefa consiste em se encontrar a primeira ocorrência de p em t. Como, em geral, os itens são caracteres, t poderá ser visto como um texto, e p como um padrão de caracteres. O problema de se encontrar a primeira ocorrência do padrão no texto é a operação básica de todo o sistema de processamento de textos.
Para obter um índice i, que aponta a primeira ocorrência da seqüência de caracteres procurada o texto deverá ser percorrido e a cada caracter avançado, deverá ocorrer uma busca de desigualdades na cadeia do texto em comparação como a cadeia do padrão.
P(i,j) = Ak : 0 k < j : Si
+ k
= pk
P(k, M) deve ser falso para todo k < i.
Q(i) = Ak : 0 k < i : ~P(k, M)
Método de Força Bruta para busca em texto
Sequência de deslocamentos necessários para uma pesquisa utilizando o algoritmo de força bruta. t e x e x e e x e t m e x e
o
d e
e x e m p l o
m e m x e m e x e m e x e m e x e m e x e m e x e m e x e m
p a r a
u m a
b u s c a
d i r e t a
Algoritmo de Força Bruta
//algoritmo de busca em texto usando o metodo Forca Bruta int forcabruta (TipoTexto t, TipoPadrao p){ int j, aux, n, m; n= strlen(t); m= strlen(p);
// percorre o texto do inicio ate o final for(int i=0; i< n; i++){
cout