Classificação (Ordenação) de dados

Slides:



Advertisements
Apresentações semelhantes
UFSC-CTC-INE INE Estruturas de Dados
Advertisements

Ordenação de Dados em Memória
Introdução à Hierarquia de Memória
Estruturas de Dados Marcio Gonçalves.
Linguagem de Programação IX Métodos de Ordenação
Arquitetura e organização de computadores
Indexação Automática de Documentos
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Algoritmos de Busca CONTEÚDO (1) Motivação (2) Busca Linear
Algoritmos de Ordenação
Classificação de Dados
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Arquivos Seqüenciais Inhaúma Neves Ferraz
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
HeapSort Filas de Prioridade – Heap
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
David Menotti Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
FACENS – Engenharia da Computação Lógica Computacional II
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Classificação e Pesquisa de Dados
Árvores Balanceadas (AVL)
Prof. Alexandre Parra Organização dos Dados Prof. Alexandre Parra
Métodos de Pesquisa: Seqüencial e Binária
Algoritmos Escher.
Árvores Binárias de Pesquisa (ABP)
Métodos de Classificação por Seleção: HeapSort
Classificação de dados por Troca: QuickSort
Método de Ordenação: InsertionSort
Introdução a Análise de Complexidade de Algoritmos
Classificação de dados por Intercalação: MergeSort
Métodos de Classificação por Seleção
Contextualização da disciplina DAD-II Prof. Alexandre Parra
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Ordenação de Dados.
Listas e algoritmos (em Scratch)
Algoritmos de Ordenação
Algoritmos de Ordenação
Insertion Sort.
Algoritmos de ordenação
ICC2 Aula 7 Fábio Nakano.
Comparação entre os métodos de ordenação
Árvore de Pesquisa Memória Secundária Engenharia de Computação - UFG.
Complexidade de algoritmos e Classificação (Ordenação) de dados
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Desenvolvimento de Jogos e Entretenimento Digital
Ceça Moraes – Introdução à Programação SI1
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Pesquisa Sequencial e Binária
Algoritmos de Ordenação
SISTEMAS OPERACIONAIS I
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Capítulo VI – Variáveis Indexadas 6.1 – A necessidade de variáveis indexadas 6.2 – Vetores e matrizes 6.3 – Aplicações com vetores numéricos 6.4 – Aplicações.
DCC 001 Programação de Computadores 2º Semestre de 2011
Métodos de Ordenação.
CLASSIFICAÇÃO DE DADOS
Programação II Laboratório II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - Transparências baseadas nos originais da Prof.
Métodos de Pesquisa: Seqüencial e Binária
Métodos de Ordenação Externa
Métodos de Pesquisa: Sequencial e Binária
Ordenação Professor Paulo Gomide 27 de outubro de 2015.
Classificação (Ordenação) de dados
USP – ICMC – SSC SSC0300 2º Semestre 2015
Classificação (Ordenação) de dados. Roteiro Contextualização e definições sobre Classificação Métodos de Classificação de Dados.
Campus Pau dos Ferros Disciplina de Algoritmos Prof. Demétrios Coutinho INFORMÁTICA BÁSICA Algoritmos de Ordenação.
Transcrição da apresentação:

Classificação (Ordenação) de dados Prof. Alexandre Parra Carneiro da Silva parrasilva@gmail.com

Roteiro Contextualização e definições sobre Classificação Métodos de Classificação de Dados

Roteiro Contextualização e definições sobre Classificação Métodos de Classificação de Dados

Visão Global O conceito de um conjunto ordenado de elementos tem considerável impacto sobre nossa vida cotidiana. Exemplos: Localizar um número telefônico em catálogo; Procurar um livro em biblioteca tradicional ou virtual; Saber qual o próximo documento a ser impresso pela impressora em um departamento da empresa; Saber qual o próximo processo a ser executado pelo processador de uma máquina qualquer; etc...

Classificação (Sorting) Processo de organizar ítens em ordem (de)crescente, segundo algum critério. Também chamado de ordenação. Aplicações que utilizam-se de dados classificados Preparação de dados para facilitar pesquisas futuras Exemplo: dicionários e listas telefônicas Agrupar ítens que apresentam mesmos valores Para eliminação dos elementos repetidos Exclusão entre ítens presentes em mais de um arquivo Para combinação de dados presentes nos vários arquivos Para consolidação dos vários arquivos em um único

Definições Os algoritmos de classificação podem ser categorizados: Internos: se os registros a serem ordenados estiverem na RAM. Externos: se os registros a serem ordenados estiverem em armazenamento auxiliar (disco). Classificação local: realização sobre a mesma área física onde se encontram as chaves. Classificação estável: é quando preserva-se a ordem relativa original dos registros com mesmo valor de chave.

Perguntas ... Qual a importância prática em categorizar algoritmos de classificação quanto a localidade ? Explique. Qual a importância prática em categorizar algoritmos de classificação quanto a estabilidade ? Explique.

Análise de Desempenho (Relembrando...) A eficiência de tempo é calculada pelo número de operações críticas efetuadas. Operações críticas: (1) comparação entre chaves; (2) movimentação de registros ou de ponteiros para registros; (3) troca de dois registros.

Roteiro Contextualização e definições sobre Classificação Métodos de Classificação de Dados

Principais Categorias de Métodos Classificação por Trocas Classificação por Seleção Classificação por Inserção Classificação por Intercalação

Principais Categorias de Métodos Classificação por Trocas Classificação por Seleção Classificação por Inserção Classificação por Intercalação

Classificação por Trocas Caracteriza-se pela comparação aos pares de chaves, trocando-as de posição caso estejam fora de ordem no par. Principais algoritmos BubbleSort (Bolha) QuickSort

BubbleSort (Método da Bolha) Compara todos os pares consecutivos (adjacentes no vetor) de chaves, realizando troca caso necessário. Realiza um certo número de varreduras sobre o vetor a ser ordenado. O procedimento termina quando, em uma dada varredura, nenhuma troca de chaves ocorre ou após n – 1 varreduras (sendo n o nº de elementos a ordenar).

Exemplo – BubbleSort (1/3) Suponha que se deseja classificar em ordem crescente o seguinte vetor de chaves [28, 26, 30, 24, 25]. Primeira Varredura 28 26 30 24 25 compara par (28, 26): troca 26 28 30 24 25compara par (28, 30): não troca 26 28 30 24 25 compara par (30, 24): troca 26 28 24 30 25 compara par (30, 25): troca 28 24 25 30 Maior chave em sua posição definitiva fim da primeira varredura

Exemplo – BubbleSort (2/3) Vetor inicial de chaves [28, 26, 30, 24, 25]. Resultado do fim da primeira varredura 26 28 24 25 30 Segunda Varredura 26 28 24 25 30 compara par (26, 28) : não troca 26 28 24 25 30 compara par (28, 24) : troca 26 24 28 25 30 compara par (28, 25) : troca 24 25 28 30 (não precisa comparar) fim da segunda varredura

Exemplo – BubbleSort (3/3) Vetor de chaves [28, 26, 30, 24, 25] a ser ordenado. Resultado do fim da segunda varredura 26 24 25 28 30 Terceira Varredura 26 24 25 28 30 compara par (26, 24) : troca 24 26 25 28 30 compara par (26, 25) : troca 25 26 28 30 (não precisa comparar) Fim da terceira varredura Durante a quarta varredura, nenhuma troca ocorrerá e a execução do algoritmo terminará.

Bubblesort - Análise de Desempenho (1/2) Melhor caso Quando o vetor já se encontra ordenado  nenhuma troca ocorre na primeira varredura. Custo linear: n - 1 comparações Pior caso Quando o vetor se encontra na ordem inversa a desejada. A cada varredura apenas uma chave será colocada em sua posição definitiva.

Bubblesort - Análise de Desempenho Pior caso (Cont.) Cmédio = ( Cpior + Cmelhor ) / 2 = (( n2 - n ) / 2 )+ ( n - 1 ))/ 2 = ( n2 + n - 2 ) / 4 (n2) Qtd de Comparações Trocas Varreduras efetuadas efetuadas 1 n - 1 n - 1 2 n - 2 n - 2 3 n - 3 n - 3 ... ... ... n - 1 1 1 Total: ( n2 - n )/2 ( n2 - n )/2 ( n2 - n )/2

Exercícios Considerando o seguinte vetor: Realize a ordenação do vetor utilizando o método BubbleSort. Quantas operações críticas (comparações + trocas) foram necessárias ? Quantas varreduras são necessárias para detectar que o vetor acima está classificado ? 3) Classifique o algoritmo BubbleSort quanto a estabilidade, ou seja, se é estável ou não-estável e quanto a localidade, ou seja, se é local ou não-local ? Justifique as suas respostas. 4) Informe a complexidade do algoritmo BubbleSort nos casos: Melhor, Pior e Caso Médio.