Ordenação. Prof. Jonas Potros

Documentos relacionados
Memória secundária. Memória secundária

Métodos de Ordenação

Ordenação em Memória Primária Estrutura de Dados II

BCC202 - Estrutura de Dados I

Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear

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

Ordenação em tempo linear

Algoritmos e Estruturas de Dados II. Ordenação

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

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

2. Ordenação por Seleção

Complexidade Assintótica de Programas Letícia Rodrigues Bueno

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

Quão rápido podemos ordenar? Aula07-LimiteInferiorpara Ordenação. Quão rápido podemos ordenar? Árvore de Decisão- Exemplo. Ordenação em Tempo Linear

INF111 Programação II Aulas 11, 12, 13 Ordenação

Simulador didático de testes de algoritmos de ordenação

Estrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática

Análise e Comparação de Algoritmos Implementados em Java

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

Complexidade de algoritmos Notação Big-O

Aula 05 Ordenação parcial

Existem duas categorias de algoritmos de ordenação: Os algoritmos de ordenação são avaliados de acordo com os seguintes critérios:

Lista de Figuras Figura 1 1: Figura 1 2: Figura 1 3: Figura 1 4: Figura 1 5: Figura 1 6: Figura 1 7: Figura 1 8: Figura 1 9: Figura 1 10:

Ordenação de Dados (III) HeapSort

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

Aula 21 Ordenação externa

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

FACULDADE DE IMPERATRIZ - FACIMP BACHARELADO EM SISTEMAS DE INFORMAÇÃO ESTRUTURA DE DADOS 2. Vieira Lima Junior. Everson Santos Araujo

Linguagem C vetores multidimensionais

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1

ANÁLISE SOBRE ALGUNS MÉTODOS DE ORDENAÇÃO DE LISTAS: SELEÇÃO, INSERÇÃO E SHELLSORT

Trabalho: Algoritmos de Busca e Ordenação. 1 Introdução. Prof. Bruno Emerson Gurgel Gomes IFRN - Câmpus Currais Novos. 31 de outubro de 2012

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler

Métodos de ordenação. Bubble sort:

3. Conteúdo de um vértice v é conteúdo dos filhos de v.

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

Estruturas de Dados 2

O mais leve e o mais pesado Algoritmos de Ordenação

Quicksort [1] Quicksort [2]

Algoritmos de Ordenação e Pesquisa. Marco Antonio Moreira de Carvalho Algoritmos e Estrutura de Dados

Algoritimos e Estruturas de Dados III CIC210

FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto a Análise de Algoritmos I Lista de Exercícios 1

BCC202 - Estrutura de Dados I

Estruturas de Dados I

Organização de Arquivos

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

Universidade da Madeira. 1. Recursão. 3. Busca. Profa. Dra. Laura Rodríguez Estruturas de dados e algoritmos 2

BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade

Ordenação de Vectores

Arquivos Sequenciais Ordenados Fisicamente

Basicamente, os tipos de algoritmos de ordenação podem ser resumidos a: Por seleção: seleciona o menor elemento, o segundo menor e assim por diante

VISÃO COMPUTACIONAL. Marcelo Henrique dos Santos

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira

Matrizes esparsas: definição

Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

SCC Capítulo 4 Métodos de Ordenação

Algoritmos de Ordenação

Livro Projeto de Algoritmos Nívio Ziviani Capítulo 4

Capítulo 14. Ordenação e pesquisa. Bubblesort. Alguns algoritmos de ordenação e pesquisa Medição do tempo de execução de um programa

Complexidade de Algoritmos

Aula 04 Ordenação parcial

Análise de Algoritmos

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.

Complexidade de Algoritmos. Edson Prestes

Este conceito é bastante simples e será útil e conveniente nos itens seguintes, na definição das estruturas básicas de controle de execução.

Capítulo 19. Algoritmos de Ordenação e de Pesquisa. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

QuickSort. Estrutura de Dados II Jairo Francisco de Souza

Busca em Memória Primária Estrutura de Dados II

ORDENAÇÃO E BUSCA 1. MÉTODOS DE ORDENAÇÃO

ANÁLISE DE ALGORITMOS: PARTE 3

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa

Análise e Projeto de Algoritmos

Noções de algoritmos - Aula 1

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I

Método de ordenação - objetivos:

Módulo 7. Complexidade de Algoritmos. Algoritmos e Estruturas de Dados II C++ Rone Ilídio

Aula 02: Custos de um algoritmo e funções de complexidade

Introdução Métodos de Busca Parte 1

SUBGERÊNCIA DE GESTÃO EDUCACIONAL PLANO DE CURSO

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

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO

Transcrição:

Ordenação Prof. Jonas Potros

Conceitos Básicos Ordenar: processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. A ordenação visa facilitar a recuperação posterior de itens do conjunto ordenado.

Conceitos Básicos A maioria dos métodos de ordenação é baseada em comparações das chaves. Existem métodos de ordenação que utilizam o princípio da distribuição.

Por Distribuição Exemplo:

Por Distribuição - Algoritmo 1. Distribuir as cartas abertas em treze montes: ases, dois, três,..., reis. 2. Colete os montes na ordem especificada. 3. Distribua novamente as cartas abertas em quatro montes: paus, ouros, copas e espadas. 4. Colete os montes na ordem especificada.

Conceitos Básicos Métodos como o ilustrado são também conhecidos como ordenação digital, radixsort ou bucketsort. Uma das dificuldades de implementar este método está relacionada com o problema de lidar com cada monte. Se para cada monte nós reservarmos uma área, então a demanda por memória extra pode tornar-se proibitiva.

Conceitos Básicos O custo para ordenar um arquivo com n elementos é da ordem de O(n), dependendo do caso: 3 2 4 6 7 8 9 10 10 9 8 7 6 5 4 2 1 2 3 4 5 6 7 8

Conceitos Básicos Notação utilizada nos algoritmos: Os algoritmos trabalham sobre os registros de um arquivo. Cada registro possui uma chave utilizada para controlar a ordenação.

Ordenação Interna

Algoritmos Ordenação por Seleção Ordenação por Inserção Shellsort Quicksort Heapsort Ordenação Parcial Seleção Parcial Inserção Parcial Heapsort Parcial Quicksort Parcial

Introdução Na escolha de um algoritmo de ordenação interna deve ser considerado o tempo gasto pela ordenação. 3 2 4 6 7 8 9 10 10 9 8 7 6 5 4 2

Introdução Sendo n o número registros no arquivo, as medidas de complexidade relevantes são: Número de comparações C (n) entre chaves. Número de movimentações M (n) de item do arquivo. 3 2 4 6 7 8 9 10 10 9 8 7 6 5 4 2 1 2 3 4 5 6 7 8

Introdução O uso econômico da memória disponível é um requisito primordial na ordenação interna. Métodos de ordenação in situ são os preferidos, por utilizarem a estrutura de vetores.

Introdução Métodos que utilizam listas encadeadas não são muito utilizados. Métodos que fazem cópias dos itens a serem ordenados possuem menor importância.

Classificação dos métodos Simples: Adequados para pequenos arquivos. 10 9 8 7 1 2 3 4 5 6 8 7 Requerem O(n²) comparações. Produzem programas pequenos. Algoritmos: Insertion sort, Selection sort, Bubble sort, Comb sort.

Classificação dos métodos Eficientes: Adequados para arquivos maiores. Requerem O(n log n) comparações. Usam menos comparações. As comparações são mais complexas nos detalhes. Métodos simples são mais eficientes para pequenos arquivos. Algoritmos: Merge sort, Heapsort, Shell sort, Radix sort, Gnome sort, Count sort, Bucket sort, Cocktail sort, Timsort e Quick sort

Exemplo: Seleção (Simples) n=6 1 2 4 3 7 6 Algoritmo: Selecione o menor item do vetor. Troque-o com o item da primeira posição do vetor. Repita essas duas operações com os n 1 itens restantes, depois com os n 2 itens, até que reste apenas um elemento.

Exemplo: Seleção (Simples) Análise Comparações entre chaves e movimentações de registros: A atribuição min = j é executada em média n log n vezes, Knuth (1973).

Exemplo: Seleção (Simples) Vantagens: Custo linear no tamanho da entrada para o número de movimentos de registros. É muito interessante para arquivos pequenos. Desvantagens: O fato de o arquivo já estar ordenado não ajuda em nada, pois o custo continua quadrático. O algoritmo não é estável.

Exemplo: Inserção (Simples) n=6 1 2 4 3 7 6 Algoritmo: Em cada passo a partir de i=2 faça: Selecione o i-ésimo item da sequência fonte. Coloque-o no lugar apropriado na sequência destino de acordo com o critério de ordenação.

Exemplo: Inserção (Simples) Análise Seja C (n) a função que conta o número de comparações. No laço mais interno, na i-ésima iteração, o valor de C i é:

Atividade Implementar o algoritmo de ordenação por Seleção (Select sort) e o por Inserção (Insert sort); Entregar dia 05/03.