Quicksort. Algoritmos e Estruturas de Dados II

Documentos relacionados
BCC202 - Estrutura de Dados I

Algoritmos de Pesquisa e Ordenação em Vectores

Tipos abstratos de dados (TADs)

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

ALGORITMOS DE ORDENAÇÃO. Algoritmos de comparação-e-troca. Bubble Sort Merge Sort Quick Sort

Algoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo

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

1.4- Técnicas de Amostragem

Método de ordenação - objetivos:

Testes de Hipóteses

INF 1010 Estruturas de Dados Avançadas

( ) ( ) ( ) ( ) ( ) 3 - INTRODUÇÃO À RESOLUÇÃO DE SISTEMAS NÃO LINEARES. Introdução.

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados

Análise Combinatória I

Solução de Equações Diferenciais Ordinárias Usando Métodos Numéricos

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2

1.5 Aritmética de Ponto Flutuante

INF 1010 Estruturas de Dados Avançadas

Jackknife, Bootstrap e outros métodos de reamostragem

Sistema Computacional para Medidas de Posição - FATEST

2 Segmentação de imagens e Componentes conexas

MEDIDAS E INCERTEZAS

Pesquisa em Memória Primária. Prof. Jonas Potros

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão


Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!

Exercício 1. Quantos bytes (8 bits) existem de modo que ele contenha exatamente quatro 1 s? Exercício 2. Verifique que

Métodos Quantitativos em Contabilidade. Análise da Variância ANOVA. Prof. José Francisco Moreira Pessanha

Capitulo 6 Resolução de Exercícios

INSTITUTO VIANNA JÚNIOR FACULDADES INTEGRADAS VIANNA JÚNIOR ANÁLISE DA COMPLEXIDADE DE ALGORITMOS DE ORDENAÇÃO

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Inteligência Artificial

Introdução à orientação a objetos

Capítulo 5 Cálculo Diferencial em IR n 5.1 Definição de função de várias variáveis: campos vetoriais e campos escalares.

Computação Científica - Departamento de Informática Folha Prática 1

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 8

VORTALbonus PROGRAMA '16 REGULAMENTO

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

AMOSTRAGEM. metodologia de estudar as populações por meio de amostras. Amostragem ou Censo?

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

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Tabela Price - verdades que incomodam Por Edson Rovina

Aula 04 Ordenação parcial

2 Conceitos Básicos. onde essa matriz expressa a aproximação linear local do campo. Definição 2.2 O campo vetorial v gera um fluxo φ : U R 2 R

IBM1018 Física Básica II FFCLRP USP Prof. Antônio Roque Aula 7

INF 1010 Estruturas de Dados Avançadas. Indexação em Espaços Multidimensionais DI, PUC-Rio Estruturas de Dados Avançadas 2012.

Ordenação e Pesquisa de Dados. Aula 07 Insertion Sort e Bubble Sort


ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Comparação de testes paramétricos e não paramétricos aplicados em delineamentos experimentais

OBSERVAÇÕES: EXERCÍCIOS

Programação de Computadores I. Linguagem C Função

FERRAMENTAS DA QUALIDADE FOLHA DE VERIFICAÇÃO

SISTEMAS DISTRIBUÍDOS

Análise de Projectos ESAPL / IPVC. Critérios de Valorização e Selecção de Investimentos. Métodos Estáticos

A TORRE DE HANÓI Carlos Yuzo Shine - Colégio Etapa

Exemplos. Jogo dos oito :-) Mundo dos blocos (ex: torre de Hanoi) Poblema das rainhas. Criptoaritmética. Missionários e Canibais.

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

Revisão Exercícios Lista 01 21/02/2011. Questão 01 UFRJ

Aula 2 - POT - Teoria dos Números - Fabio E. Brochero Martinez Carlos Gustavo T. de A. Moreira Nicolau C. Saldanha Eduardo Tengan

Figura 4.1: Diagrama de representação de uma função de 2 variáveis

EAD Árvore árvore binária

Algoritmos Eficientes de Ordenação

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

FONSECA, LUCIANO DUARTE FERRAMENTAS DE DIAGNÓSTICO ERD COMMANDER

Prof. Daniela Barreiro Claro

Pesquisa Sequencial e Binária

Engenharia de Software II

Matemática Ficha de Trabalho

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Actividade de enriquecimento. Algoritmo da raiz quadrada

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE TRANSPORTES E GESTÃO TERRITORIAL PPGTG DEPARTAMENTO DE ENGENHARIA CIVIL ECV

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II

4 Teoria da Localização 4.1 Introdução à Localização

Programação Recursiva versão 1.02

ST364 Estruturas de Dados Grupo 4 apresenta: Seminário MERGESORT Blog -

Análise de programas imperativos

UNIVERSIDADE FEDERAL DA BAHIA ESCOLA POLITÉCNICA DEPARTAMENTO DE ENGENHARIA QUÍMICA ENG 008 Fenômenos de Transporte I A Profª Fátima Lopes

5n 3. 1 nsen(n + 327) e)

Testes de Hipóteses para a Diferença Entre Duas Médias Populacionais

Microprocessadores. Memórias

Deswik.Sched. Sequenciamento por Gráfico de Gantt

*Este tutorial foi feito para o Windows 7, mas pode ser usado em qualquer outro Windows, basta seguir o mesmo raciocínio.

LIBERAÇÃO DE ATUALIZAÇÃO CORDILHEIRA

Curso de Formação de Oficiais Conhecimentos Específicos ENGENHARIA DE COMPUTAÇÃO CADERNO DE QUESTÕES

ActivALEA. ative e atualize a sua literacia

s =, sendo n= n Uma amostra de 60 indivíduos onde a massa corpórea, em kg, tiver média 42kg e um desvio padrão de 3,5 o Erro Padrão da Média será:

Capítulo 8 Estimativa do Intervalo de Confiança. Statistics for Managers Using Microsoft Excel, 5e 2008 Pearson Prentice-Hall, Inc.

Contratar um plano de saúde é uma decisão que vai além da pesquisa de preços. Antes de

Resoluções A. Combinatória 1 3 os anos Blaidi/Walter Ago/09. Nome: Nº: Turma:

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

Auxiliar em Administração de Redes Redes de Computadores I

Tutorial de Acesso aos s Institucionais e Intranet

INE ESTATÍSTICA APLICADA I - TURMA GABARITO LISTA DE EXERCÍCIOS SOBRE AMOSTRAGEM E PLANEJAMENTO DA PESQUISA

UNICAMP ª Fase MATEMÁTICA BERNOULLI COLÉGIO E PRÉ-VESTIBULAR

M =C J, fórmula do montante

Transcrição:

Quicksort Algoritmos e Estruturas de Dados II

História Proposto por Hoare em 960 e publicado em 962 É o algoritmo de ordeação itera mais rápido que se cohece para uma ampla variedade de situações Provavelmete é o mais utilizado 2

Algoritmo Dividir o problema de ordear um cojuto com ites em dois problemas meores Os problemas meores são ordeados idepedetemete As partições são combiadas para produzir a solução fial 3

Particioameto A parte mais delicada do quicksort é o processo de partição O vetor v é rearrajado por meio da escolha arbitrária de um pivô p O vetor v é particioado em dois: Partição esquerda: chaves p Partição direita: chaves p 4

Algoritmo para particioameto Escolha arbitrariamete o pivô p Percorra a partir da esquerda até que v[e] p Percorra a partir da direita até que v[d] p Troque v[e] com v[d] Repita os passos ateriores até que e e d se cruzarem d < e 5

Exemplo de particioameto Selecioado o pivô como v[de/2] C A M I N H O C A M I N H O C A M I N H O C A M I N H O C A M I N H O C A H I N M O C A H I N M O Ao fial do particioameto 6 O pivô está em sua posição fial Elemetos a partição da esquerda são meores Elemetos a partição da direita são maiores que o pivô

Exemplo quicksort C A H I N M O C A H I C A H I N H O C A H I N H O A C H I N H O A C H I N H O A C H I N M O A C H I N M O A C H I N M O N M O N M O M N O M N O A C H I M N O 7

Quicksort void quicksortstruct item *v, it e, it d { ifd <= e retur; it p = particaov, e, d; quicksortv, e, p-; quicksortv, p, d; } void particaostruct item *v, it e, it d { it i = e; it j = d; struct item pivo = v[de/2]; while { whilev[i].chave < pivo.chave i; whilepivo.chave < v[j].chave j--; ifi >= j break; trocav[i], v[j]; i; j--; } 8 } trocav[i], v[d]; retur i; Não fucioa quado tem elemetos repetidos!

Quicksort Aálise Pior caso Acotece quado o pivô é sempre o maior ou meor elemeto partições de tamaho desequilibrado void quicksortstruct item *v, it e, it d { ifd <= e retur; it p = particaov, e, d; /* p = d; */ quicksortv, e, p-; /* quicksortv, e, d-; */ quicksortv, p, d; /* quicksortv, d, d; */ } comparações 9 - comparações zero comparações C = 2 L = i = i= 2

Quicksort Aálise Exemplo de pior caso T V Y Z S X U T V Y U S X Z T V X U S Y Z T V S U X Y Z T U S V X Y Z T S U V X Y Z S T U V X Y Z 0

Quicksort Aálise Melhor caso Acotece quado as partições têm sempre o mesmo tamaho partições balaceadas void quicksortstruct item *v, it e, it d { ifd <= e retur; it p = particaov, e, d; /* p = de/2; */ quicksortv, e, p-; /* quicksortv, e, de/2-; */ quicksortv, p, d; /* quicksortv, de/2, d; */ } comparações /2 comparações /2 comparações C = 2C / 2 lg

Quicksort Aálise Caso médio Partições podem ser feitas em qualquer posição o vetor = = = i i C i C i C C 2 2 = = i i C 2 2 = C C C C C lg, l 39 2 2 = =

Quicksort Aálise Melhor caso C lg = O lg Caso médio C, 39lg = O lg Pior caso C = = 2 O 2 3

Vatages e desvatages Vatages: Melhor opção para ordear vetores grades Muito rápido por que o laço itero é simples Memória auxiliar para a pilha de recursão é pequea Complexidade o caso médio é O lg Desvatages: Não é estável ão cohecemos forma eficiete para torar o quicksort estável Pior caso é quadrático 4

Otimização Mediaa de três Para evitar o pior caso do quicksort, podemos escolher o pivô como a mediaa de três elemetos T V Y Z S X U T V Y Z S X U T S U Z Y X V Aumetar o úmero de elemetos cosiderados a mediaa, por exemplo pra 5 ou 9, ão ajuda muito 5

Otimização Partição meor primeiro Implemetações ão recursivas do quicksort precisam mater uma pilha auxiliar No pior caso, a pilha auxiliar pode ter tamaho Para limitar o crescimeto da pilha auxiliar basta ordear a partição meor primeiro T V Y Z S X U T V Y Z S X U T S U Z Y X V T S U 6

Otimização Partições pequeas Quado a partição a ordear é pequea, o método de ordeação por iserção é mais rápido que o quicksort Não tem chamadas recursivas Laço itero muito eficiete T V Y Z S X U T V Y Z S X U T S U Z Y X V T S U 7

Potos extras poto para os três primeiros aluos que apresetarem código do quicksort que usa mediaa de três poto para os três primeiros aluos que apresetarem código do quicksort que usa iserção em partições pequeas poto para os três primeiros aluos que apresetarem quicksort ão recursivo e que limita o tamaho da pilha auxiliar ordeado partições pequeas primeiro Cada aluo pode gahar apeas dos potos acima A solução deve ser costrúída como extesão do código colocado a págia do curso 8