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

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

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 1. ORDENAÇÃO POR TROCA

Estudando complexidade de algoritmos

BCC202 - Estrutura de Dados I

Redutores de Velocidade

Pesquisa Sequencial e Binária

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

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

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

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

Introdução à Computação

Stela Adami Vayego DEST/UFPR

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

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

Experimento 1 Estudo da Lei de Hooke

Compactação e Reuso de Espaço

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

Implementação de Planilha de Cálculos Simplificada

Aula 5 de Bases Matemáticas

Elementos de Análise - Verão 2001

DESIGUALDADES, LEIS LIMITE E TEOREMA DO LIMITE CENTRAL. todas as repetições). Então, para todo o número positivo ξ, teremos:

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

Séquências e Séries Infinitas de Termos Constantes

INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1

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

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

ESTIMAÇÃO DA PROPORÇÃO POPULACIONAL p

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

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

5- CÁLCULO APROXIMADO DE INTEGRAIS 5.1- INTEGRAÇÃO NUMÉRICA

ESTATÍSTICA. PROF. RANILDO LOPES U.E PROF EDGAR TITO

Análise de Algoritmos

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler

1. Revisão Matemática

Sucessão ou Sequência. Sucessão ou seqüência é todo conjunto que consideramos os elementos dispostos em certa ordem. janeiro,fevereiro,...

Estatística Aplicada Medidas Resumo Apostila 4 Prof. Fábio Hipólito Aluno(a):

Classificação e Pesquisa de Dados

Fundamentos de Análise Matemática Profª Ana Paula. Sequência Infinitas

Sequências Reais. Departamento de Matemática - UEL Ulysses Sodré. 1 Sequências de números reais 1

MEDIDAS DE TENDÊNCIA CENTRAL E MEDIDAS DE DISPERSÃO Í N D I C E

1ª Lista de Exercícios Números Naturais e o PIF

Estatística: Aplicação ao Sensoriamento Remoto SER ANO Técnicas de Reamostragem

PROVA 1 27/10/ Os dados apresentados na seqüência mostram os resultados de colesterol

Métodos de Classificação dos Objetos Segmentados(IAR) Vizinho Próximo Lógica Fuzzy

SEEC UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE UERN FACULDADE DE CIÊNCIAS EXATAS E NATURAIS FANAT DEPARTAMENTO DE CIÊNCIAS BIOLÓGICAS DECB

Problema de Fluxo de Custo Mínimo

Série Trigonométrica de Fourier

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

F- MÉTODO DE NEWTON-RAPHSON

A letra x representa números reais, portanto

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

Matriz de Contabilidade Social. Prof. Eduardo A. Haddad

1- Resolução de Sistemas Lineares.

2. Ordenação por Seleção

5. ANÁLISE DE SISTEMAS DA CONFIABILIADE DE SISTEMAS SÉRIE-PARALELO

Pesquisa Linear. Adriano J. Holanda 15/3/2016

Uma Proposta de Infra-estrutura de Medições para o Tráfego do Backbone da RNP2

AEP FISCAL ESTATÍSTICA

Estimação por Intervalo (Intervalos de Confiança):

Um estudo das permutações caóticas

1.5 Aritmética de Ponto Flutuante

Anexo VI Técnicas Básicas de Simulação do livro Apoio à Decisão em Manutenção na Gestão de Activos Físicos

Exercícios de exames e provas oficiais

3ª Lista de Exercícios de Programação I

BCC202 - Estrutura de Dados I

MEDIDAS DESCRITIVAS DE POSIÇÃO, TENDÊNCIA CENTRAL E VARIABILIDADE

Otimização e complexidade de algoritmos: problematizando o cálculo do mínimo múltiplo comum

Análise de Regressão Linear Múltipla I

FICHA DE TRABALHO 11º ANO. Sucessões

Exercícios de exames e provas oficiais

Tipos abstratos de dados (TADs)

O problema das Torres de Hanoi: a lenda, algoritmos e generalizações.

MATEMÁTICA II. 01. Uma função f, de R em R, tal. , então podemos afirmar que a, b e c são números reais, tais. que. D) c =

Árvores de Pesquisa (Parte I)

Estrutura de Dados. ! Listas lineares. ! Como manipulá-las: ! estática. ! dinâmicas. ! pilhas. ! filas

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Probabilidade II Aula 9

CONCEITOS BÁSICOS E PRINCÍPIOS DE ESTATÍSTICA

ARRANJO SIMPLES PROFº: VALDÉCIO FÉLIX. Choquitomóvel

Métodos de Ordenação

Probabilidade II Aula 12

Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Fundamentos de Análise Matemática Profª Ana Paula. Números reais

CAPÍTULO 5 - INTRODUÇÃO À INFERÊNCIA ESTATÍSTICA

TÓPICOS. Matriz inversa. Método de condensação. Matriz ortogonal. Propriedades da álgebra matricial.

Capítulo 3. Sucessões e Séries Geométricas

1 Formulário Seqüências e Séries

Alguns autores também denotam uma sequência usando parêntesis:

2.3 Dimensionamento segundo as normas de outros países

Seqüências e Séries. Notas de Aula 4º Bimestre/2010 1º ano - Matemática Cálculo Diferencial e Integral I Profª Drª Gilcilene Sanchez de Paulo

ESTATÍSTICAS DE ORDEM DA DISTRIBUIÇÃO DE POISSON: UM ESTUDO ASSINTÓTICO DE SEUS MOMENTOS

RESUMÃO DE RACIOCÍNIO LÓGICO P/ MP-RJ 2016

Matemática. B) Determine a equação da reta que contém a diagonal BD. C) Encontre as coordenadas do ponto de interseção das diagonais AC e BD.

Sinais de Tempo Discreto

Hipótese Estatística. Tipos de Hipóteses

LAYOUT CONSIDERAÇÕES GERAIS DEFINIÇÃO. Fabrício Quadros Borges*

O QUE SÃO E QUAIS SÃO AS PRINCIPAIS MEDIDAS DE TENDÊNCIA CENTRAL EM ESTATÍSTICA PARTE li

b. que têm dígitos distintos? c. que são pares? d. que são pares e têm dígitos distintos? f. que têm exatamente 3 dígitos iguais?

Transcrição:

Ordeação (Parte 1) Prof. Túlio Toffolo http://www.toffolo.com.br BCC0 Aula 13 Algoritmos e Estruturas de Dados I

Critério de Ordeação Ordea-se de acordo com uma chave: typedef it TChave; typedef struct { TChave Chave; /* outros compoetes */ TItem;

Características Estabilidade: relativo à mauteção da ordem origial de ites de chaves iguais Ordeação itera: dados a serem ordeados cabem todos a memória pricipal. Pricípio: comparação x distribuição 3

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 4

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 i situ ão utilizam memória adicioal. 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. 5

Métodos Métodos a que estudaremos hoje: Bolha (BubbleSort) Seleção (SelectSort) Iserção (IsertSort) 6

ORDENAÇÃO DA BOLHA BUBBLESORT

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 8

Método Bolha void Bolha (TItem* v, it ) { it i, j; TItem 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; 9

Aálise de Complexidade M() = 3C() = O( ) Comparações C() Movimetações M() ) ( 1) ( 1) )( (0 1) ( 1 1) ( ) ( 0 0 0 0 O i i C i i i i = = + = = = = = = = 10

Ordeação por Bolha Vatages: 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? 11

Método Bolha void Bolha (TItem* v, it ) { it i, j; TItem 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; 1

Método Bolha Melhoria!!! void Bolha (TItem* v, it ) { it i, j, troca; TItem 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++; if (troca == 0) break; 13

ORDENAÇÃO POR SELEÇÃO SELECTSORT

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 15

Método Seleção void Selecao (TItem* v, it ) { it i, j, Mi; TItem 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; 16

Aálise de Complexidade ) ( 1) ( 1) )( (0 1) ( 1 1) ( ) ( 0 0 0 0 O i i C i i i i = = + = = = = = = = Comparações C() Movimetações M() M() = 3( 1) = O() 17

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 (alto custo de movimetação). É 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. 18

Método Seleção void Selecao (TItem* v, it ) { it i, j, Mi; TItem 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; 19

Método Seleção Melhoria! void Selecao (TItem* v, it ) { it i, j, Mi; TItem 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; 0

ORDENAÇÃO POR INSERÇÃO INSERTSORT

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

Método Iserção void Isercao (TItem* v, it ) { it i,j; TItem 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; 3

Método Iserção (com setiela) void Isercao (TItem* 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[] 4

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() = ½ ( +... + ) = /4 + /4 1/ 5

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 caso medio : M i () = i : 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 +... + ) = ( + )/ 6

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. 7

Ordeação por Comparação Métodos simples: Adequados para pequeas etradas. Requerem O( ) comparações. Produzem programas pequeos (pouco código). 8

Ordeação por Comparação Métodos eficietes: Adequados para etradas maiores. Requerem O( log ) comparações. Usam meos comparações. As comparações são mais complexas os detalhes. Uma observação importate: Métodos simples são mais eficietes para pequeos arquivos. 9

Pergutas?

BUBBLESORT, SELECTSORT E INSERTSORT EXERCÍCIO

Exercício Dada a sequêcia de úmeros: 3 4 9 5 1 8 Ordee em ordem crescete utilizado os três algoritmos apredidos em sala (BubbleSort, SelectSort e IsertSort), apresetado a sequêcia dos úmeros a cada passo. 3