Algoritmos e Estruturas de Dados I Aula 05: Métodos simples de ordenação (bogo Sort, selection Sort, insertion Sort, bubble Sort)

Documentos relacionados
Processamento da Informação Vetores Parte 1 (Arrays / Arranjos )

Processamento da Informação Vetores Parte 1 (Arrays / Arranjos )

- Métodos simples de busca - Métodos ingênuos de ordenação (introdução)

TÍTULO DO ARTIGO EM PORTUGUÊS TÍTULO DO ARTIGO EM INGLÊS

CCM002 Metodologia de Pesquisa em Ciência da Computação. Apresentações. Prof. Jesús P. Mena-Chalco 3Q-2016

Um exemplo de projeto feito em L A TEX: Procure um título suficientemente claro

ISEL Instituto Superior de Engenharia de Lisboa ADEETC Área Departamental de Engenharia de Electrónica e Teleconumicações e de Computadores

BRAND GUIDELINES RTP MÚSICA

Um teste do L Y X. efeefe

MANUAL DE NORMAS Normas Normas.indd indd :09:36 12:09:36

Intro. Índice. Um teste do L Y X. Contents. efeefe. Sexta-feira, 13 de agosto de I O primeiro capítulo 1. II O segundo capítulo 3.

EDITAL 03/2019 DISCIPLINA ESPECIAL: DIPLOMACIA MULTILATERAL E LIDERANÇA

Como gerenciar com sucesso o seu empreendimento

MANUAL DE IDENTIDADE VISUAL ATUALIZAÇÃO: MARÇO/2017

Manual de Normas Gráficas. CASES - Cooperativa António Sérgio para a Economia Social

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ENGENHARIA MECÂNICA

POCH MANUAL DE NORMAS

AMAZÔNIA PARA SEMPRE. Inclusão Digital. Acessibilidade. País do Futebol. Sustentabilidade & Gestão Social

A construção do logótipo (relações entre os diferentes elementos);

SUPER LOGO EXEPLO DE APRESENTAÇÂO

MODELO PARA EDITORAÇÃO DE LIVRO Guia do Usuário

MANUAL NORMAS GRÁFICAS

Preparação de um trabalho de pesquisa: - Citações e Referências bibliográficas

Este é o Título do TCC

Após Renato acelerar tramitação, Senado vota hoje PEC do teto

MANUAL DE IDENTIDADE VISUAL CENTEIAS

KIT DE NORMAS GRAFICAS

MANUAL DE NORMAS GRÁFICAS MOD02_PR02_V03 1

MANUAL DE NORMAS GRÁFICAS MOD02_PR02_V05 1

Universidade Estadual de Campinas Faculdade de Tecnologia. Nome do Autor. Título da Dissertação ou Tese em Português

MANUAL DE NORMAS. Guia de identidade visual. Abril. 2016

D I G I TA L ATENÇÃO NAS MÍDIAS DIGITAIS, OS DESCONTOS DIFEREM DOS PRATICADOS NA MÍDIA IMPRESSA. CONSULTE-NOS.

Coloque aqui seu nome

12 Set SEGUNDA-FEIRA ÀS 19:30PM

Fórum Metodologias Ativas MetA 2015

d ce D I G I TA L ATENÇÃO NAS MÍDIAS DIGITAIS, OS DESCONTOS DIFEREM DOS PRATICADOS NA MÍDIA IMPRESSA. CONSULTE-NOS. R E V I S T A

IFDR, IP MANUAL DE NORMAS

SUPER BANNER PERSONALIZADO 01 (960X200px) Fábio Assunção comenta cena do primeiro encontro entre Arthur e Eliza: Bem bonito

DE PRODUTOS. VISITE NOSSO SITE: FORMA DE BAURU C/ ROLO PARA PINTURA 15CM C/ ESPREMEDOR DE LARANJA C/

Modelo Canônico de Projeto de pesquisa com abntex2

FULL BANNER CAPA 1 (728X90px)

LOREM IPSUM DOLOR SIT AMET

Título UNIVERSIDADE FEDERAL DO RIO DE JANEIRO INSTITUTO DE MATEMÁTICA NOME COMPLETO ALUNO 1. Prof. Nome do orientador, M.Sc.

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS UNIDADE ACADÊMICA DE PESQUISA E PÓS-GRADUAÇÃO PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Brandbook OUTUBRO 2017

manual de marca FAF Essência da marca

Cartão Loja. Cartão Pessoal. José Maria Diretor Administrativo. Buscamos e aviamos sua receita TELEVENDAS.

NORMAS PARA PUBLICAÇÃO - TECCOGS ISSN:

Edital de Chamada para Trabalhos Acadêmicos

Manual de Normas Gráficas

Manual de Normas Gráficas Março 2017

Câmara Municipal de Vagos Normas Gráficas

Para mais informação consulte o nosso site ESPECIFICAÇÕES TÉCNICAS DO ANUÁRIO 2010

Brand Identity Guidelines

O PROJETO PROMOVER A IMPORTÂNCIA DE UMA EDUCAÇÃO ACOMPANHADA E INTERVENTORA PROMOVER RELAÇÕES DE INTERAÇÃO COM A NATUREZA E OS ANIMAIS

MANUAL DE USO DA MARCA E IDENTIDADE VISUAL

REGULAMENTO GERAL I JORNADA CIENTÍFICA DA EMBRAPA PESCA E AQUICULTURA

PRÓ-REITORIA DE PÓS-GRADUAÇÃO E PESQUISA PROGRAMA DE INICIAÇÃO CIENTÍFICA UEPB/CNPq COTA NORMAS PARA O RELATÓRIO FINAL E PRESTAÇÃO DE CONTAS

Manual de identidade visual

ANEXO DO CONCURSO LITERÁRIO INTERNACIONAL. A Primeira Conferência

APLICANDO FERRAMENTAS NA ADMINISTRAÇÃO

MUSEU do FUTEBOL manual da marca

[Título Ch19] Título do trabalho: Um título que reflete o conteúdo

Fulano de Tal. Exemplo de livro produzido com. abntex2 v-1.9.7

Modelo Canônico de Trabalho Acadêmico com abntex2

Título do artigo. 1,5cm. Nome completo do AUTOR 1. 2,5cm. 1,2cm

Nome do Autor Sobrenome

manual básico de aplicação do logo

Introdução. Este manual de identidade define um conjunto de regras e recomendações que visam garantir a utilização e aplicação correcta da marca Keep.

MARCA BRAGANÇA MANUAL DE NORMAS GRÁFICAS NOVEMBRO 2014

XI MOSTRA ACADÊMICA DE ENFERMAGEM DA UFC A Integralidade no cuidado em saúde EDITAL 001/2019

PROPOSTA DE ISOLOGÓTIPO PARA O CONCELLO DE TEO

12EDIÇÃO In-Lex ANUÁRIO das Sociedades de Advogados IN-LEX

Monografia Índice Completo

Apresentação Manual de Identidade Visual

Manual de Identidade

Manual de Identidade do Projeto v.1.5. Implementação: Apoio Técnico: Realização:

ESPECIFICAÇÕES TÉCNICAS DO ANUÁRIO 2015 CANAIS DE DISTRIBUIÇÃO EDIÇÕES E DIVULGAÇÃO CONTACTOS IN-LEX

Brasil de A a Agá. Marcia Zoet Fotografia. José Santos Texto

futuretransport O portal que nasceu digital para um mundo digital midiakit

Revista Universitária de Comunicação e Multimédia Número 1/bimestral/Abril/2010/UTAD/gratuita

MANUAL DE NORMAS GRÁFICAS

A A. Caixas. Prof.: Ivan R. Pagnossin. Tutora: Juliana Giordano. Largura. Altura. Altura total. Linha-base. Profundidade. Ponto-de-referência

UNIVERSIDADE FEDERAL DE ITAJUBÁ - UNIFEI PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA. Título do Trabalho. Nome do Autor

COMO FAZER TRABALHOS

A C R A M A L D A U N A

Normas de estilo para teses de doutoramento 2013

Fique por dentro das nossas novidades

Normas para apresentação e elaboração de Trabalhos Finais de Licenciatura e Mestrado

Drag&Shop: Análise e concepção de produto no setor e-business

manual de marca Versão 2 Atualizado em 27 de outubro de 2014

Título da Dissertação

MANUAL DE IDENTIDADE VISUAL

Ut iaculis lorem in orci pellentesque nec vehicula lacus aliquet 1 (13 pt, negrito)

MELHOR TURISMO2020. Manual de Normas Gráficas ESTE MANUAL ESTABELECE AS NORMAS DE UTILIZAÇÃO DA MARCA.

PROCESSO SELETIVO PARA MATRÍCULA NA PÓS-GRADUAÇÃO DE MESTRADO PROFISSIONAL EM CIÊNCIAS MILITARES DA PARA EX-DISCENTES

UNIVERSIDADE DO OESTE DE SANTA CATARINA NOME DO AUTOR DO TRABALHO. TÍTULO:Subtítulo(se houver)

Universidade Federal da Integração Latino-Americana. Manual de Identidade Visual

XXII Jornada Acadêmica do Curso de Ciências Biológicas. 30/05 a 04/06/2016

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE CIÊNCIAS NATURAIS E EXATAS PROGRAMA DE PÓS-GRADUAÇÃO EM ALGUM CURSO. Fulano de Tal

Transcrição:

Algoritmos e Estruturas de Dados I Aula 05: Métodos simples de ordenação (bogo Sort, selection Sort, insertion Sort, bubble Sort) Prof. Jesús P. Mena-Chalco 1Q-2016 1

Ordenação Ordenar corresponde ao processo de re-arranjar um conjunto de objetos em ordem ascendente ou descendente. Por que ordenar? O objetivo principal da ordenação é facilitar a recuperação posterior de itens do conjunto ordenado. As ordens mais utilizadas são a numérica e lexicográfica. 2

21/03/2016 3

Por que ordenar? Busca de elementos: O usuário geralmente quer os dados ordenados. Deduplicação de elementos: Ordenar é muito útil para eliminar duplicações. Projeção de objetos em um espaço 3D. Criação de uma árvore geradora mínima. Ordenar é o primeiro passo para carregar os dados em uma estrutura tipo árvore B+. 4

Algoritmos para ordenar elementos Baseado em comparações: Bogo sort Selection sort Insertion sort Bubble sort Mergesort Quicksort Heapsort Ordenação em tempo linear: Radix sort Ordenação de primeiros elementos (seleção parcial): Partial Quicksort 5

O problema de ordenar na forma crescente Um vetor v[0..n-1] é crescente se v[0] v[1] [n-1] O problema de ordenação de um vetor consiste em rearranjar (ou seja, permutar) os elementos de um vetor v[0..n-1] de tal modo que ele se torne crescente. Vetores ordenados: {1, 1, 1, 1, 1, 1, 1, 1} {0, 1, 1, 1, 2, 3, 4, 4, 4, 4, 4, 4, 100} 6

Verificar se um vetor v[0..n-1] é crescente 7

Número de comparações T(n): - No melhor caso: T(n) = 1 - No pior caso: T(n) = n-1 T(n) = O(n) Crie uma versão recursiva da função crescente 8

Vetor crecente (recursiva) Número de comparações T(n): - No melhor caso: T(n) = 1 - No pior caso: T(n) = n-1 T(n) = O(n) 9

Embaralhando um vetor 10

Número de trocas de elementos T(n): - No melhor caso: T(n) = n - No pior caso: T(n) = n T(n) = O(n) 11

(1) Bogo sort Miracle sort Monkey sort Stupid sort 12

Número de comparações T(n): - No melhor caso: T(n) = n-1 - No pior caso: T(n) =? 13

(2) Selection Sort: Algoritmo de ordenação por seleção 14

Selection Sort Animação: https://www.cs.usfca.edu/~galles/visualization/comparisonsort.html 15

Selection Sort Complexidade computacional: No pior caso? 16

Selection Sort Quanto tempo o algoritmo consome para fazer o serviço? (A complexidade computacional é proporcional ao número de comparações v[imin]>v[j]) 17

Selection Sort Quanto tempo o algoritmo consome para fazer o serviço? (A complexidade computacional é proporcional ao número de comparações v[imin]>v[j]) 9 8 7 6 5 4 3 2 1 1 8 7 6 5 4 3 2 9 1 iteração n-1 2 iteração n-2 3 iteração n-3 n-1iteração 1 18

Selection Sort 1 iteração 2 iteração 3 iteração n-1iteração n-1 n-2 n-3 Tempo = (n 1)(n)/2 Tempo = n²/2 n/2 1 Se o vetor tiver n=10,000 elementos, o número de comparações (tempo) será proporcional a: 49,995,000. Se o computador fizer 1000 comparações por segundo, o tempo gasto será de: 49995 segundos = 832.25 min = 13.88 horas 19

Selection Sort Tempo = (n 1)(n)/2 Tempo = n²/2 n/2 Número de comparações para qualquer caso T(n) = n²/2 n/2 T(n) = O(n²) 20

Selection Sort Número de comparações: No pior caso = O(n²) tempo n 21

Crie uma versão recursiva do Selection Sort Assinatura: 22

23

(3) Insertion Sort: Algoritmo de ordenação por inserção 24

Insertion Sort Método preferido dos jogadores de cartas Em cada passo, a partir do i=1, o i-ésimo elemento da sequência fonte é apanhado e transferido para a sequência destino, sendo inserido no seu lugar apropriado. 0 1 2 3 4 5 1 5 7 10 55 6 1 5 7 10 55 6 6 Animação: https://www.cs.usfca.edu/~galles/visualization/comparisonsort.html 25

Insertion Sort A principal característica deste algoritmo consiste em ordenar o vetor utilizando um subvetor ordenado em seu inicio. A cada novo passo, acrescentamos a este subvetor mais um elemento até atingirmos o último elemento de um arranjo. Ordenado Sem ordem 26

void InsertionSort (int[] v, int n) 27

Insertion Sort Número de comparações T(n): - No melhor caso: T(n) = n-1 - No pior caso: T(n) =? P2: Versão recursiva 28

Insertion Sort n=7 0 1 2 3 Comparações 4 5 6 L= i=1 1 i=2 2 i=3 3 i=n-1 Este algoritmo é o mais apropriado quando os elementos do vetor estiverem semi-ordenados. n-1 Tempo = (n 1)(n)/2 Tempo = n²/2 n/2 Tempo = O(n²) 29

(4) Bubble Sort: Ordenação pelo método da bolha Ordenação por troca dois-a-dois 30

Bubble Sort O algoritmo de ordenação baseado em troca, consiste em intercalar pares de elementos que não estão em ordem até que não exista mais pares. O principio do bolha é a troca de valores entre posições consecutivas fazendo com que os valores mais altos borbulhem para o final do vetor. Animação: https://www.cs.usfca.edu/~galles/visualization/comparisonsort.html 31

Bubble Sort Crie uma função iterativa que permita ordenar de forma ascendente uma lista dada como entrada. void BubbleSort (int[] v, int n) 32

Bubble Sort n=7 0 1 2 3 4 5 6 L= Comparações k=n-1 n-1 k=n-2 n-2 k=n-3 n-3 k=1 1 Tempo = (n 1)(n)/2 Tempo = n²/2 n/2 33

Bubble Sort Número de comparações T(n): - No melhor caso: T(n) = n²/2 n/2 - No pior caso: T(n) = n²/2 n/2 Número de comparações T(n): - No melhor caso: T(n) = n-1 - No pior caso: T(n) = n² 34

Elegante? 35

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vel est augue. Donec aliquam laoreet ipsum, ac sagittis odio aliquam quis. In eleifend est tortor, dapibus posuere odio consectetur id. Donec varius eget est eu luctus. Phasellus scelerisque, nunc laoreet feugiat sagittis, risus neque condimentum nisi, eget feugiat turpis purus quis urna. Mauris tempor eros in turpis tincidunt, bibendum euismod est pretium. Praesent ligula dui, fermentum a porttitor vitae, pulvinar ut odio. Suspendisse vitae pretium dolor, at sodales mauris. Sed consequat purus nec bibendum suscipit. Donec ultricies euismod enim, quis interdum mi ornare et. Ut facilisis elit vitae elementum fringilla. Pellentesque sed orci iaculis, imperdiet elit et, mollis enim. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vel est augue. Donec aliquam laoreet ipsum, ac sagittis odio aliquam quis. In eleifend est tortor, dapibus posuere odio consectetur id. Donec varius eget est eu luctus. Phasellus scelerisque, nunc laoreet feugiat sagittis, risus neque condimentum nisi, eget feugiat turpis purus quis urna. Mauris tempor eros in turpis tincidunt, bibendum euismod est pretium. Praesent ligula dui, fermentum a porttitor vitae, pulvinar ut odio. Suspendisse vitae pretium dolor, at sodales mauris. Sed consequat purus nec bibendum suscipit. Donec ultricies euismod enim, quis interdum mi ornare et. Ut facilisis elit vitae elementum fringilla. Pellentesque sed orci iaculis, imperdiet elit et, mollis enim. 36

elegante? Direitos de autor: Dezignus 37

elegante? 38

elegante? 39

40