Classificação (Ordenação) de dados. Roteiro Contextualização e definições sobre Classificação Métodos de Classificaçã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 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
Pesquisa em Memória Primária
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
HeapSort Filas de Prioridade – Heap
Pesquisa em Memória Primária – Árvores de Busca
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
Pesquisa em Memória Primária
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
Classificação (Ordenação) de dados
Prof. Alexandre Parra Organização dos Dados Prof. Alexandre Parra
Métodos de Pesquisa: Seqüencial e Binária
Algoritmos Escher.
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
Métodos de Classificação por Seleção
Ordenação de Dados.
Marco Antonio Montebello Júnior
Algoritmos e Estrutura de Dados: Uma pequena motivação
Algoritmos de Ordenação
Algoritmos de Ordenação
Insertion Sort.
Listas Lineares Estrutura de Dados.
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
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.
Métodos de Ordenação.
CLASSIFICAÇÃO DE DADOS
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Classificação Ordenaçã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
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
USP – ICMC – SSC SSC0300 2º Semestre 2015
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

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. Memória principal. Externos: se os registros a serem ordenados estiverem em armazenamento auxiliar (disco). Memória auxiliar. 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.

Estabilidade Um algoritmo de ordenação é estável se NÃO se altera a posição relativa de elementos com mesmo valor. Por exemplo, se o vetor v[0..n-1] tiver dois elementos iguais a 222, primeiro um azul e depois um vermelho, um algoritmo de ordenação estável mantém o 222 azul antes do vermelho:

Análise de Desempenho 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. Vantagem: Simplicidade, Estável. Desvantagem: Lentidão. Indicado: Tabela muito pequena, quando a tabela está quase ordenada. 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).

BubbleSort (Método da Bolha)

Exemplo – BubbleSort (1/3) Suponha que se deseja classificar em ordem crescente o seguinte vetor de chaves [28, 26, 30, 24, 25]. Primeira Varredura compara par (28, 26): troca compara par (28, 30): não troca compara par (30, 24): troca compara par (30, 25): troca 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 Segunda Varredura compara par (26, 28) : não troca compara par (28, 24) : troca compara par (28, 25) : troca (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 Terceira Varredura compara par (26, 24) : troca compara par (26, 25) : troca (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.) Qtd de Comparações Trocas Varreduras efetuadas efetuadas 1 n - 1 n n - 2 n n - 3 n n ( n 2 - n )/2 C médio = ( C pior + C melhor ) / 2 = (( n 2 - n ) / 2 )+ ( n - 1 ))/ 2 = ( n 2 + n - 2 ) / 4 (n2)(n2) Total: ( n 2 - n )/2

Exercícios Considerando o seguinte vetor: 1)Realize a ordenação do vetor utilizando o método BubbleSort. Quantas operações críticas (comparações + trocas) foram necessárias ? 2)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? Justifique as suas respostas. 4) Informe a complexidade do algoritmo BubbleSort nos casos: Melhor, Pior e Caso Médio.