Busca linear

De Wiki DAINF
(Diferença entre revisões)
(Nova página: A ser editado...)
 
 
(8 edições intermediárias de 2 usuários não apresentadas)
Linha 1: Linha 1:
A ser editado...
+
(CORRIGIR ERROS DE DIGITAÇÃO E ERROS DE PORTUGUÊS)
 +
 
 +
Busca linear e a denominação de uma estrutura capaz de realizar uma varredura de forma sequencial em uma array (vetor) a fim de encontrar um determinado elemento. Este processo ocorre de forma contínua no qual uma vairável (exemplo i) é acrescentado em seu valor uma unidade até que tenha o seu ponto de parada ao encontrar o elemento desejado. O ponto de partida é a posição inicial do vetor (exemplo V[0]) até o momento em que (V[i]==elemento_procurado) ou até o final do vetor, neste caso i é máximo, quando não é encontrado o valor na array.
 +
 
 +
Esse tipo de busca, não é considerado o mais eficaz a medida em que está mais distante do início o elemento estiver, mais sera o numro de comparações: (ver figura)
 +
 
 +
[[Imagem:Imagemdk5.jpg]]
 +
 
 +
 
 +
A melhor opção ocorre quando o elemento a ser procurado é o V[0] ou elemento inicial do vetor, neste caso é necessário somente uma comparação.O pior resulatdo para a busca sequencial ocorre quando o elemnto esta no fim do vetor, ou (elemento_procurado==V[n]), sendo V[n] ultimo elemento do vetor, neste caso foram necessárias (n) comparações.
 +
 
 +
== Lógica ==
 +
 
 +
[[Imagem:89883322ik0.jpg]]
 +
 
 +
== Implementação em C ==
 +
 
 +
''Obs: A função retorna um valor inteiro correspondente ao numero de comparações efetuadas.''
 +
 
 +
int busca_linear (int V[],int n, int a){
 +
    int i=0;
 +
    for(i=0;i<n;i++){
 +
      if(V[i]==a){
 +
       
 +
        printf("\nValor encontrado!!!    \n");
 +
        return i+1;
 +
       
 +
      }
 +
    }
 +
    printf("\nValor nao encontrado    \n");
 +
    return i;
 +
 +
 
 +
 
 +
a = numero a ser procurado;
 +
V[]= vetor de inteiros;
 +
n = tamanho do vetor;
 +
 
 +
 
 +
== Referencias bibliográficas ==
 +
 
 +
* FEOFILOFF, Paulo. Projeto de Algoritmos. Disponível em: <http://www.ime.usp.br/~pf/algoritmos/index.html>. Acesso em: 28 nov. 2008
 +
 
 +
* PIMENTEL,Graça ; MIGHIM, Rosane. Algoritmos de Busca em Lista Estática Seqüencial.Disponível em: <http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node19.html>. Acesso em: 26 nov. 2008
 +
 
 +
* RICARTE, Ivan L. M. Algoritimos de busca.Disponível em: <http://www.icmc.usp.br/~sce182/lestbus.html>. Acesso em: 26 nov. 2008

Edição atual tal como 13h49min de 4 de dezembro de 2008

(CORRIGIR ERROS DE DIGITAÇÃO E ERROS DE PORTUGUÊS)

Busca linear e a denominação de uma estrutura capaz de realizar uma varredura de forma sequencial em uma array (vetor) a fim de encontrar um determinado elemento. Este processo ocorre de forma contínua no qual uma vairável (exemplo i) é acrescentado em seu valor uma unidade até que tenha o seu ponto de parada ao encontrar o elemento desejado. O ponto de partida é a posição inicial do vetor (exemplo V[0]) até o momento em que (V[i]==elemento_procurado) ou até o final do vetor, neste caso i é máximo, quando não é encontrado o valor na array.

Esse tipo de busca, não é considerado o mais eficaz a medida em que está mais distante do início o elemento estiver, mais sera o numro de comparações: (ver figura)

Imagemdk5.jpg


A melhor opção ocorre quando o elemento a ser procurado é o V[0] ou elemento inicial do vetor, neste caso é necessário somente uma comparação.O pior resulatdo para a busca sequencial ocorre quando o elemnto esta no fim do vetor, ou (elemento_procurado==V[n]), sendo V[n] ultimo elemento do vetor, neste caso foram necessárias (n) comparações.

Lógica

89883322ik0.jpg

Implementação em C

Obs: A função retorna um valor inteiro correspondente ao numero de comparações efetuadas.

int busca_linear (int V[],int n, int a){

   int i=0;
   for(i=0;i<n;i++){
      if(V[i]==a){
        
        printf("\nValor encontrado!!!     \n");
        return i+1;
        
      }
   }
   printf("\nValor nao encontrado     \n");
   return i;

}


a = numero a ser procurado; V[]= vetor de inteiros; n = tamanho do vetor;


Referencias bibliográficas

Ferramentas pessoais