Upload
internet
View
105
Download
2
Embed Size (px)
Citation preview
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
ESTRUTURAS DE DADOS AVANÇADASAula 13
105/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
AgendaAlgoritmos de Pesquisa e Ordenação.Pesquisa em tabelas: modo seqüencial e
binário.Bibliografia
205/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação“A arte de programar consiste na arte de
organizar e dominar a complexidade.” Edsger Dijkstra
Bancos de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro simplesmente digitando sua chave.
Há apenas um método para se encontrar informações em um arquivo (matriz) desordenado e um outro para um arquivo (matriz) ordenado.
305/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Pesquisa sequencial
Método mais simples, varredura serial da tablea (vetor, matriz ou arquivo), comparando a chave até encontrar valor igual ou chegar final da tabela
405/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Pesquisa seqüencial - continuação
Duas formas de implementação : Retornar o próprio elemento/valor encontrado. Retornar o Índice do elemento (no caso de um vetor)
505/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Pesquisa seqüencial - continuação
Exemplo : Devolve o índice da entrada encontrada se existir alguma; caso contrário, irá devolver -1.
605/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Pesquisa seqüencial - continuação
Se a tabela estiver ordenada o numero médio de comparações será menor do que se a lista estiver desordenada.
Durante o processo de pesquisa é possível mover as entradas mais solicitadas para o início da tabela. Uma estratégia consiste em mover a entrada para o início da tabela cada vez que ela for solicitada.
705/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Pesquisa Binária
Método superior de pesquisa. Pode ser usado se os dados apresentarem-se de forma ordenada. Utiliza a abordagem dividir e conquistar.
805/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Pesquisa Binária
Método superior de pesquisa. Pode ser usado se os dados apresentarem-se de forma ordenada. Utiliza a abordagem dividir e conquistar.
905/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Pesquisa Binária
Método superior de pesquisa. Pode ser usado se os dados apresentarem-se de forma ordenada. Utiliza a abordagem dividir e conquistar.
1005/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Pesquisa Binária
Método superior de pesquisa. Pode ser usado se os dados apresentarem-se de forma ordenada. Utiliza a abordagem dividir e conquistar.
1105/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação Processo de arranjar um conjunto de informações
semelhantes em uma ordem crescente ou decrescente.
Algoritmo de ordenação em ciência da computação é um algoritmo que coloca os elementos de uma dada seqüência em uma certa ordem - em outras palavras, efetua sua ordenação completa ou parcial. As ordens mais usadas são a numérica e a lexicográica.
1205/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação – continuação
Bublesort – Método simples por troca após repetidas comparações e se necessário troca de dois elementos adjacentes.
1305/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação – continuação
A ordenação Bubble é dirigida por dois laços (programa 8.1). Dados que existem iQtdElementos elementos na matriz, o laço mais externo faz a matriz ser varrida iQtdElementos-1 vezes. Isso garante, na pior hipótese, que todo elemento estará na posição correta quando a função terminar. O laço mais interno faz as comparações e as trocas.
1405/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação – continuação Exemplo 1 : Varre do inicio ao fim mesmo que não ocorra
mais trocas
1505/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação – continuação Exemplo :
1605/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação – continuação Exemplo 2 : Detecta que não houve nenhuma troca e
conseqüentemente a tabela já está ordenada.
1705/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação – Continuação Exemplo 2 :
1805/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação – Continuação Exemplo 2 :
1905/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação – Continuação Por Seleção – Consiste em trocar o menor elemento (ou
maior) da lista com o elemento do inicio da lista, indo para o segundo elemento e sucessivamente até os dois últimos.
2005/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Algoritmos de Pesquisa e Ordenação Ordenação – Continuação Exemplo : Ordenação por inserção usando dados tabela 8.3
2105/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Bibliografia
05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 22
BIBLIOGRAFIA BÁSICA
1AZEREDO, Paulo A. Métodos de Classificação de Dados. Rio de Janeiro: Ed. Campus, 1996.
2LAUREANO, M. Estrutura de Dados com Algoritmos e C. 1ª Ed. São Paulo: Brasport, 2008.
3PEREIRA, Silvio do Lago. Estruturas de Dados Fundamentais – Conceitos e Aplicações. 7.ed. São Paulo: Érica, 2008.
BIBLIOGRAFIA COMPLEMENTAR
4KOFFMANN, E.B. Objetos, Abstração, Estrutura de Dados e Projetos. 1ª Ed. Rio de Janeiro: LTC, 2008.
5MORAES, Celso Roberto. Estruturas de Dados e Algoritmos.Uma abordagem didática. Edição revista e Ampliada. São Paulo: Editora Futura, 2003.
6WIRTH, Niklaus. Algoritmos e estruturas de dados. Rio de Janeiro: Prentice Hall do Brasil, 1989.
7ZIVIANI, N. Projeto de Algoritmos com implementações em Pascal e C , Editora Pioneira, 1999.