A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagem C Linguagem de Programação X Métodos de Pesquisa Joseane Alves Freire 2ª Semestre 2009 CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMA.

Apresentações semelhantes


Apresentação em tema: "Linguagem C Linguagem de Programação X Métodos de Pesquisa Joseane Alves Freire 2ª Semestre 2009 CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMA."— Transcrição da apresentação:

1 Linguagem C Linguagem de Programação X Métodos de Pesquisa Joseane Alves Freire 2ª Semestre 2009 CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMA

2 Introdução Apresentaremos e discutiremos diferentes estratégias para efetuarmos a pesquisa (busca) de um elemento específico em um conjunto de dados. Esta operação é muito importante, pois é encontrada com muita freqüência em diversas aplicações. Apresentaremos os métodos de pesquisa seqüencial e binária sobre a estrutura de dados vetor.

3 Pesquisa Seqüencial Pesquisa Seqüencial (PS) –Metodologia: É efetuada a verificação de cada elemento do conjunto, seqüencialmente, até que o elemento desejado seja encontrado (pesquisa bemsucedida), ou que todos os elementos do conjunto tenham sido verificados sem que o elemento procurado tenha sido encontrado(pesquisa mal-sucedida). –Utilizado quando os elementos da variável indexada não estão ordenados. –Como encontrar o elemento 12 no vetor? –Quantas comparações foram necessárias neste caso?

4 Pesquisa Seqüencial Características –Forma mais simples de realizar pesquisas. –Pode ser muito ineficiente quando o conjunto de dados é muito grande. Desempenho –Pior Caso: é quando é necessário realizar n comparações (onde n é o número de elementos); Qual o cenário de pior caso possível ? –Melhor Caso: é quando é necessário realizar somente uma comparação; Qual o cenário de pior caso possível ? –Caso Médio: é quando é necessário realizar cerca de n/2 comparações. Qual o cenário de pior caso possível ?

5 Pesquisa Seqüencial Código /*Faz a pesquisa sequencial do elemento val no vetor a[]*/ int pesquisa_sequencial(int a[], int n, int val){ int i; for(i=0;i

6 Pesquisa Binária É utilizado quando os elementos da variável indexada estão previamente ordenados e funciona assim: –O elemento que se encontra no meio (aproximado) do vetor é localizado e comparado ao valor procurado. –Se ele for igual ao valor procurado, a pesquisa é bem sucedida e terminada. –Se ele for maior que o valor procurado, repete-se o processo na primeira metade do vetor. –Se ele for menor que o valor procurado, repete-se o processo na segunda metade do vetor. –Este processo é continuado até que o valor procurado seja localizado (pesquisa bem sucedida). –ou então até que não reste mais um trecho do vetor a ser pesquisado (pesquisa mal-sucedida).

7 Pesquisa Binária Desempenho –Pior Caso: Elemento não ocorre no vetor. Duas comparações são realizadas a cada ciclo. A cada repetição, a parte considerada na busca é dividida à metade Complexidade log 2 n.

8 Ilustração da Pesquisa Binária

9 Fluxograma da Busca Binária

10 Busca Binária Código /*Faz a pesquisa binária do elemento val no vetor a[]*/ int pesquisa_binaria(int a[], int n, int val){ int inicio=0, meio, fim=n-1, achou=0; while ((achou!=1) && (inicio <= fim)){ meio = (inicio+fim)/2; if(val == a[meio]) achou=1; else{ if (val < a[meio]) //vamos procurar na primeira metade do vetor fim = meio - 1; //para isso basta mudar o indice FIM. else //vamos procurar na segunda metade do vetor inicio = meio + 1; //para isso basta mudar o indice INICIO. } return achou; }

11 Comparando a Busca Seqüencial e Binária Busca Seqüencial O(n) Busca Binária O (log 2 n) Exemplo: considere uma lista de elementos –A busca binária realizaria no pior caso 14 comparações enquanto que a busca seqüencial realizaria em média comparações

12 Exercício Considere o vetor com 11 elementos abaixo e diga quantas comparações de igualdade realizam os algoritmos de Busca Linear e Busca Binária, na tentativa de se encontrar no vetor os valores: a) 3 b) 25 c) 70


Carregar ppt "Linguagem C Linguagem de Programação X Métodos de Pesquisa Joseane Alves Freire 2ª Semestre 2009 CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMA."

Apresentações semelhantes


Anúncios Google