tecnologia em anÁlise e desenvolvimento de sistemas estruturas de dados avanÇadas aula 13 1...

22
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com

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

Page 2: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 3: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 4: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 5: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 6: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 7: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 8: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 9: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 10: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 11: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 12: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 13: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 14: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 15: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 16: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 17: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 18: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 19: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 20: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 21: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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

Page 22: TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula 13 1 05/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.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.