Ordenação. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Documentos relacionados
Ordenação (Parte 1) Prof. Túlio Toffolo BCC202 Aula 13 Algoritmos e Estruturas de Dados I

Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP. Aula 10: Ordenação

BCC202 - Estrutura de Dados I

Quicksort. Algoritmos e Estruturas de Dados II

Ordenação: Introdução e métodos elementares. Algoritmos e Estruturas de Dados II

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Estudando complexidade de algoritmos

ANÁLISE DE COMPLEXIDADE DE ALGORITMOS

1. ORDENAÇÃO POR TROCA ORDENAÇÃO. 1.1 Ordenação por Bolha. Exemplo, 25, 57, 48, 37, 12, 92, 86, 33. Algoritmo. Complexidade de Tempo

Ordenação e Busca em Arquivos

ORDENAÇÃO 1. ORDENAÇÃO POR TROCA

Ordenação por Troca. Bubblesort Quicksort

Busca binária. Busca em arquivos. Busca binária. Busca binária. Ordenação e busca em arquivos

Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos. Análise de Algoritmos

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

Redutores de Velocidade

Arquivo de Índice (Revisão) Indexação de Arquivos II: Arquivos de Índice Grandes. Arquivos de Índice Grandes

Ordenação: Heapsort. Algoritmos e Estruturas de Dados II

Complexidade de Algoritmos Aula 5

Complexidade de Algoritmos

Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 1-3

Algoritmos de ordenação: Bucketsort, Radixsort e Seleção

AULA 1. Administração. Página da disciplina:

1ª Lista de Exercícios. 1. São dados 2n números distintos distribuídos em dois vetores com n elementos A e B ordenados de maneira tal que

Método BubbleSort. Estrutura de Dados II Prof Jairo Francisco de Souza

MÉTODOS DE ORDENAÇÃO DE DADOS EM MEMÓRIA PRIMÁRIA. Material da Prof. Ana Eliza

Introdução a Complexidade de Algoritmos

Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Classificação por Seleção Direta

Métodos de Ordenação Parte I

Métodos de Classificação

Introdução à Computação

Compactação e Reuso de Espaço

Ordenação. Prof. Jonas Potros

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

MÉTODOS DE CLASSIFICAÇÃO EM MEMÓRIA PRIMÁRIA. George Gomes Cabral

Estruturas de Dados Algoritmos de Ordenação

HeapSort Filas de Prioridade Heap. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Métodos de Ordenação: Selection, Insertion, Bubble, Merge (Sort)

Parte 3: Gráfico de Gestão de Estoque. Gráficos e Cálculos Fundamentais

Mineração de Dados em Biologia Molecular

Ordenação: QuickSort. Prof. Túlio Toffolo BCC202 Aula 15 Algoritmos e Estruturas de Dados I

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

Stela Adami Vayego DEST/UFPR

Introdução. Objetivo da Ciência da Computação. Regra Geral. Nenhuma implementação excelente salva um Algoritmo inadequado.

DETERMINANDO A SIGNIFICÂNCIA ESTATÍSTICA PARA AS DIFERENÇAS ENTRE MÉDIAS

Fontes Bibliográficas. Estruturas de Dados Aula 14: Recursão. Introdução. Introdução (cont.)

Algoritmos de ordenação: Inserção e Shellsort

Métodos de Classificação

Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI1

PROF. DR. JACQUES FACON

ALGORITMOS DE ORDENAÇÃO

O termo "linear" significa que todas as funções definidas no modelo matemático que descreve o problema devem ser lineares, isto é, se f( x1,x2

Medidas de Posição. É igual ao quociente entre a soma dos valores do conjunto e o número total dos valores.

5 Teoria dos Valores Extremos

Uma recorrência é uma equação que descreve uma função em termos do seu valor em entradas menores

Aula 5 de Bases Matemáticas

Introdução. Objetivo da Ciência da Computação. Regra Geral. Problema Algoritmo Implementação. Projeto e Análise de. Algoritmo 3

1 Amintas engenharia

PROJETO E ANÁLISES DE EXPERIMENTOS (PAE) PROJETO FATORIAL 2 k COMPLETO E REPLICADO. Dr. Sivaldo Leite Correia

Amostras Aleatórias e Distribuições Amostrais. Probabilidade e Estatística: afinal, qual é a diferença?

Quicksort. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Análise Combinatória (Regras de Contagem) 2 Princípio Fundamental da Multiplicação

O Problema da Ordenação Métodos de Ordenação Parte 1

Estatística: Aplicação ao Sensoriamento Remoto SER ANO Teoria da amostragem

REVISÃO DE PROBABILIDADE E ESTATÍSTICA. Parte 2

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2007.

Modelagem para o tempo de atravessamento e inventário médio em arranjos produtivos por processo

AULA Subespaço, Base e Dimensão Subespaço.

. Dessa forma, quanto menor o MSE, mais a imagem

Stela Adami Vayego DEST/UFPR

Métodos Quantitativos para Ciência da Computação Experimental Aula #4

Ordenação por Partição (Quick Sort)

Programação de Computadores Ordenação de Arranjos

Universidade São Judas Tadeu Faculdade de Tecnologia e Ciências Exatas Laboratório de Física e Química

Carlos Eduardo Batista. Centro de Informática - UFPB

Lista de Exercícios #6 Assunto: Propriedade dos Estimadores e Métodos de Estimação

Lista IC, tamanho de amostra e TH

Sumário. 2 Índice Remissivo 19

Testando a lei dos grandes números: simulando cálculo de probabilidades através do Stata

Bombas industriais. 1 Torr = 1 mmhg. Bombas industriais

DISTRIBUIÇÃO AMOSTRAL E ESTIMAÇÃO PONTUAL INTRODUÇÃO ROTEIRO POPULAÇÃO E AMOSTRA. Estatística Aplicada à Engenharia

Aula 5. Aula de hoje. Aula passada. Limitante da união Método do primeiro momento Lei dos grandes números (fraca e forte) Erro e confiança

Representação de Números em Ponto Flutuante

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:

Módulo 4 Cartas de controle para atributos: construção e interpretação. Estudos de estabilidade e capacidade. Estudo de R&R (MSA).

1- Resolução de Sistemas Lineares.

ÁLGEBRA. Licenciatura em Engenharia Electrotécnica e de Computadores LEEC Ano lectivo de 2002/2003

Programação de Computadores II. Recursividade

DFS Série Discreta de Fourier DFT Transformada Discreta de Fourier Convolução Circular

Induzindo a um bom entendimento do Princípio da Indução Finita

O Algoritmo de Ordenação Smoothsort Explicado

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

3.4.2 Cálculo da moda para dados tabulados. 3.4 Moda Cálculo da moda para uma lista Cálculo da moda para distribuição de freqüências

UNIVERSIDADE DA BEIRA INTERIOR

Estimação dos parâmetros angular e linear da equação de regressão linear simples pelo método não-paramétrico

MESTRADO EM MARKETING Métodos Quantitativos Aplicados ao Marketing

ESCOLA SUPERIOR DE TECNOLOGIA DE SETÚBAL DEPARTAMENTO DE MATEMÁTICA MATEMÁTICA DISCRETA Curso: LEI. Correção do exame da Época Normal - A 2006/2007

Transcrição:

Ordeação David Meotti Algoritmos e Estruturas de Dados II DIf UFPR

Critério de Ordeação Ordea-se de acordo com uma chave: typedef it ChaveTipo; typedef struct ChaveTipo Chave; /* outros compoetes */ Item; David Meotti Algoritmos e Estruturas de Dados II

Características Estabilidade: relativo à mauteção da ordem origial de ites de chaves iguais Um método de ordeação é estável se a ordem relativa dos ites com chaves iguais ão se altera durate a ordeação. Ordeação itera: arquivo a ser ordeado cabe todo a memória pricipal. Pricípio: comparação x distribuição David Meotti Algoritmos e Estruturas de Dados II

Critério de Avaliação Sedo o úmero de registros o arquivo, as medidas de complexidade relevates são: Número de comparações C() etre chaves. Número de movimetações M() de ites David Meotti Algoritmos e Estruturas de Dados II

Outras Cosiderações O uso ecoômico da memória dispoível é um requisito primordial a ordeação itera. Métodos de ordeação i situ são os preferidos. Métodos que utilizam listas ecadeadas ão são muito utilizados. Métodos que fazem cópias dos ites a serem ordeados possuem meor importâcia. David Meotti Algoritmos e Estruturas de Dados II

Métodos Bolha (BubbleSort) Seleção (SelectSort) Iserção (IsertSort) David Meotti Algoritmos e Estruturas de Dados II

Método Bolha Os elemetos vão borbulhado a cada iteração do método até a posição correta para ordeação da lista O método poderia parar quado ehum elemeto borbulhace/trocasse de posição Como os elemetos são trocados (borbulhados) frequetemete, há um alto custo de troca de elemetos David Meotti Algoritmos e Estruturas de Dados II

Método Bolha void Bolha (Item* v, it ) it i, j; Item aux; for( i = 0 ; i < -1 ; i++ ) for( j = 1 ; j < -i ; j++ ) if ( v[j].chave < v[j-1].chave ) aux = v[j]; v[j] = v[j-1]; v[j-1] = aux; // if David Meotti Algoritmos e Estruturas de Dados II

Aálise de Complexidade Comparações C() Movimetações M() David Meotti Algoritmos e Estruturas de Dados II

David Meotti Algoritmos e Estruturas de Dados II Aálise de Complexidade Comparações C() Movimetações M() ) ( 3 ) ( C M ) ( 1) ( 1) )( (0 1) ( 1 1) ( ) ( 0 0 0 0 O i i C i i i i

Vatages: Ordeação por Bolha Algoritmo simples Algoritmo estável Desvatages: O fato de o arquivo já estar ordeado ão ajuda reduzir o úmero de comparações (o custo cotiua quadrático), porém o úmero de movimetação cai a zero. Possível modificação a atual implemetação? David Meotti Algoritmos e Estruturas de Dados II

Método Bolha void Bolha (Item* v, it ) it i, j, troca; Item aux; for( i = 0 ; i < -1 ; i++ ) troca = 0; for( j = 1 ; j < -i ; j++ ) if ( v[j].chave < v[j-1].chave ) aux = v[j]; v[j] = v[j-1]; v[j-1] = aux; troca = 1; // if if (troca == 0) break; David Meotti Algoritmos e Estruturas de Dados II

Método Seleção Seleção do -ésimo meor (ou maior) elemeto da lista Troca do -ésimo meor (ou maior) elemeto com a -ésima posição da lista Uma úica troca por vez é realizada David Meotti Algoritmos e Estruturas de Dados II

Método Seleção void Selecao (Item* v, it ) it i, j, Mi; Item aux; for (i = 0; i < - 1; i++) Mi = i; for (j = i + 1 ; j < ; j++) if ( v[j].chave < v[mi].chave) Mi = j; aux = v[mi]; v[mi] = v[i]; v[i] = aux; David Meotti Algoritmos e Estruturas de Dados II

Aálise de Complexidade Comparações C() Movimetações M() David Meotti Algoritmos e Estruturas de Dados II

David Meotti Algoritmos e Estruturas de Dados II Aálise de Complexidade Comparações C() Movimetações M() ) ( 1) ( 1) )( (0 1) ( 1 1) ( ) ( 0 0 0 0 O i i C i i i i 1) 3( ) ( M

Ordeação por Seleção Vatages: Custo liear o tamaho da etrada para o úmero de movimetos de registros. É o algoritmo a ser utilizado para arquivos com registros muito grades. É muito iteressate para arquivos pequeos. Desvatages: O fato de o arquivo já estar ordeado ão ajuda em ada, pois o custo cotiua quadrático. O algoritmo ão é estável. David Meotti Algoritmos e Estruturas de Dados II

Método Seleção Melhoria! void Selecao (Item* v, it ) it i, j, Mi; Item aux; for (i = 0; i < - 1; i++) Mi = i; for (j = i + 1 ; j < ; j++) if ( v[j].chave < v[mi].chave) Mi = j; if (i!= Mi) aux = v[mi]; v[mi] = v[i]; v[i] = aux; David Meotti Algoritmos e Estruturas de Dados II

Método Iserção Algoritmo utilizado pelo jogador de cartas As cartas são ordeadas da esquerda para direita uma por uma. O jogador escolhe a seguda carta e verifica se ela deve ficar ates ou a posição que está. Depois a terceira carta é classificada, deslocado-a até sua correta posição O jogador realiza esse procedimeto até ordear todas as cartas Alto custo em remover uma carta de uma posição e colocá-la em outra quado a represetação é por arrajos David Meotti Algoritmos e Estruturas de Dados II

Método Iserção void Isercao (Item* v, it ) it i,j; Item aux; for (i = 1; i < ; i++) aux = v[i]; j = i - 1; while ( ( j >= 0 ) && ( aux.chave < v[j].chave ) ) v[j + 1] = v[j]; j--; v[j + 1] = aux; David Meotti Algoritmos e Estruturas de Dados II

Método Iserção (com setiela) void Isercao (Item* v, it ) it i,j; for (i = -; i >=0; i--) v[] = v[i]; j = i + 1; while ( ( v[].chave > v[j].chave ) ) v[j - 1] = v[j]; j++; v[j - 1] = v[] David Meotti Algoritmos e Estruturas de Dados II

Aálise de Complexidade Comparações C() Movimetações M() David Meotti Algoritmos e Estruturas de Dados II

Aálise de Complexidade Comparações C() No ael mais itero, a i-ésima iteração, o valor de C i é: melhor caso : C i () = 1 pior caso : C i () = i caso medio : C i () = 1/i (1 + +... + i) = (i+1)/ Assumido que todas as permutações de são igualmete prováveis o caso médio, temos: melhor caso: C() = (1 + 1 +... + 1) = - 1 pior caso : C() = (1 + +... + -1) = / - / caso medio : C() = ½ ( + 3 +... + ) = /4 + /4 1/ David Meotti Algoritmos e Estruturas de Dados II

Aálise de Complexidade Movimetações M() No ael mais itero, a i-ésima iteração, o valor de M i é: melhor caso : M i () = 0 pior caso : M i () = i caso medio : M i () = 1/i (0 + 1 + +... + i-1) = (i-1)/ Assumido que todas as permutações de são igualmete prováveis o caso médio, temos: melhor caso: M() = ( + +... + ) = - pior caso : M() = (+1 + + +... + +-1) = ( +3-4)/ caso medio : M() = ½ ( + 3 +... + ) = ( + )/ David Meotti Algoritmos e Estruturas de Dados II

Ordeação por Iserção O úmero míimo de comparações e movimetos ocorre quado os ites estão origialmete em ordem. O úmero máximo ocorre quado os ites estão origialmete a ordem reversa. É o método a ser utilizado quado o arquivo está quase ordeado. É um bom método quado se deseja adicioar us poucos ites a um arquivo ordeado, pois o custo é liear. O algoritmo de ordeação por iserção é estável. David Meotti Algoritmos e Estruturas de Dados II

Ordeação Itera Classificação dos métodos de ordeação itera: Métodos simples: Adequados para pequeos arquivos. Requerem O( ) comparações. Produzem programas pequeos. Métodos eficietes: Adequados para arquivos maiores. Requerem O( log ) comparações. Usam meos comparações. As comparações são mais complexas os detalhes. Métodos simples são mais eficietes para pequeos arquivos. David Meotti Algoritmos e Estruturas de Dados II