Ordenação em tempo linear
|
|
|
- Luiz Eduardo Faro Duarte
- 8 Há anos
- Visualizações:
Transcrição
1 Ordenação em tempo linear CLRS cap 8 Algoritmos p. 1
2 Ordenação: limite inferior Problema: Rearranjar um vetor A[1..n] de modo que ele fique em ordem crescente. Existem algoritmos que consomem tempo O(n lg n). Algoritmos p. 2
3 Ordenação: limite inferior Problema: Rearranjar um vetor A[1..n] de modo que ele fique em ordem crescente. Existem algoritmos que consomem tempo O(n lg n). Existe algoritmo assintoticamente melhor? Algoritmos p. 2
4 Ordenação: limite inferior Problema: Rearranjar um vetor A[1..n] de modo que ele fique em ordem crescente. Existem algoritmos que consomem tempo O(n lg n). Existe algoritmo assintoticamente melhor? NÃO, se o algoritmo é baseado em comparações. Prova? Algoritmos p. 2
5 Ordenação: limite inferior Problema: Rearranjar um vetor A[1..n] de modo que ele fique em ordem crescente. Existem algoritmos que consomem tempo O(n lg n). Existe algoritmo assintoticamente melhor? NÃO, se o algoritmo é baseado em comparações. Prova? Qualquer algoritmo baseado em comparações é uma árvore de decisão. Algoritmos p. 2
6 Exemplo ORDENA-POR-INSERÇÃO (A[1.. 3]): SIM A[1] A[2]? NÃO A[2] A[3]? A[1] A[3]? SIM NÃO SIM NÃO A[1] A[2] A[3] A[1] A[3]? A[2]<A[1] A[3] A[2] A[3]? SIM NÃO SIM NÃO A[1] A[3]<A[2] A[3]<A[1] A[2] A[2] A[3] A[1] A[3]<A[2]<A[1 Algoritmos p. 3
7 Limite inferior Considere uma árvore de decisão para A[1..n]. Algoritmos p. 4
8 Limite inferior Considere uma árvore de decisão para A[1..n]. Número de comparações, no pior caso? Algoritmos p. 4
9 Limite inferior Considere uma árvore de decisão para A[1..n]. Número de comparações, no pior caso? Resposta: altura, h, da árvore de decisão. Algoritmos p. 4
10 Limite inferior Considere uma árvore de decisão para A[1..n]. Número de comparações, no pior caso? Resposta: altura, h, da árvore de decisão. Todas as n! permutações de 1,...,n devem ser folhas. Algoritmos p. 4
11 Limite inferior Considere uma árvore de decisão para A[1..n]. Número de comparações, no pior caso? Resposta: altura, h, da árvore de decisão. Todas as n! permutações de 1,...,n devem ser folhas. Toda árvore binária de altura h tem no máximo 2 h folhas. Algoritmos p. 4
12 Limite inferior Considere uma árvore de decisão para A[1..n]. Número de comparações, no pior caso? Resposta: altura, h, da árvore de decisão. Todas as n! permutações de 1,...,n devem ser folhas. Toda árvore binária de altura h tem no máximo 2 h folhas. Prova: Por indução em h. A afirmação vale para h = 0. Suponha que a afirmação vale para toda árvore binária de altura menor que h, para h 1. O número de folhas de uma árvore de altura h é a soma do número de folhas de suas sub-árvores, que têm altura h 1. Logo, o número de folhas de uma árvore de altura h é não superior a 2 2 h 1 = 2 h. Algoritmos p. 4
13 Limite inferior Assim, devemos ter 2 h n!, donde h lg(n!). (n!) 2 = n 1 (n i)(i+1) n n = n n i=0 i=1 Portanto, h lg(n!) 1 2 n lg n. Alternativamente, a fórmula de Stirling diz que n! = 2π n ( n) n(1 1 + Θ( e n )). Disso, temos que h lg(n!) lg ( n e ) n = n(lg n lg e). Algoritmos p. 5
14 Conclusão Todo algoritmo de ordenação baseado em comparações faz Ω(n lg n) comparações no pior caso Algoritmos p. 6
15 Counting Sort Recebe inteiros n e k, e um vetor A[1..n] onde cada elemento é um inteiro entre 1 e k. Algoritmos p. 7
16 Counting Sort Recebe inteiros n e k, e um vetor A[1..n] onde cada elemento é um inteiro entre 1 e k. Devolve um vetor B[1..n] com os elementos de A[1..n] em ordem crescente. Algoritmos p. 7
17 Counting Sort Recebe inteiros n e k, e um vetor A[1..n] onde cada elemento é um inteiro entre 1 e k. Devolve um vetor B[1..n] com os elementos de A[1..n] em ordem crescente. COUNTINGSORT(A, n) 1 para i 1 até k faça 2 C[i] 0 3 para j 1 até n faça 4 C[A[j]] C[A[j]] para i 2 até k faça 6 C[i] C[i] + C[i 1] 7 para j n decrescendo até 1 faça 8 B[C[A[j]]] A[j] 9 C[A[j]] C[A[j]] 1 10 devolva B Algoritmos p. 7
18 Consumo de tempo linha consumo na linha 1 Θ(k) 2 O(k) 3 Θ(n) 4 O(n) 5 Θ(k) 6 O(k) 7 Θ(n) 8 O(n) 9 O(n) 10 Θ(1) total???? Algoritmos p. 8
19 Consumo de tempo linha consumo na linha 1 Θ(k) 2 O(k) 3 Θ(n) 4 O(n) 5 Θ(k) 6 O(k) 7 Θ(n) 8 O(n) 9 O(n) 10 Θ(1) total Θ(k + n) Algoritmos p. 8
20 Counting Sort COUNTINGSORT(A, n) 1 para i 1 até k faça 2 C[i] 0 3 para j 1 até n faça 4 C[A[j]] C[A[j]] para i 2 até k faça 6 C[i] C[i] + C[i 1] 7 para j n decrescendo até 1 faça 8 B[C[A[j]]] A[j] 9 C[A[j]] C[A[j]] 1 10 devolva B Consumo de tempo: Θ(k + n) Se k = O(n), o consumo de tempo é Θ(n). Algoritmos p. 9
21 Radix Sort Algoritmo usado para ordenar inteiros não-negativos com d dígitos cartões perfurados registros cuja chave tem vários campos Algoritmos p. 10
22 Radix Sort Algoritmo usado para ordenar inteiros não-negativos com d dígitos cartões perfurados registros cuja chave tem vários campos dígito 1: menos significativo dígito d: mais significativo Algoritmos p. 10
23 Radix Sort Algoritmo usado para ordenar inteiros não-negativos com d dígitos cartões perfurados registros cuja chave tem vários campos dígito 1: menos significativo dígito d: mais significativo RADIXSORT(A, n, d) 1 para i 1 até d faça 2 ORDENE(A, n, i) Algoritmos p. 10
24 Radix Sort Algoritmo usado para ordenar inteiros não-negativos com d dígitos cartões perfurados registros cuja chave tem vários campos dígito 1: menos significativo dígito d: mais significativo RADIXSORT(A, n, d) 1 para i 1 até d faça 2 ORDENE(A, n, i) ORDENE(A,n,i): ordena A[1..n] pelo i-ésimo dígito dos números em A por meio de um algoritmo estável. Algoritmos p. 10
25 Consumo de tempo Depende do algoritmo ORDENE. Algoritmos p. 11
26 Consumo de tempo Depende do algoritmo ORDENE. Se cada dígito é um inteiro de 1 a k, então podemos usar o COUNTINGSORT. Algoritmos p. 11
27 Consumo de tempo Depende do algoritmo ORDENE. Se cada dígito é um inteiro de 1 a k, então podemos usar o COUNTINGSORT. Neste caso, o consumo de tempo é Θ(d(k + n)). Algoritmos p. 11
28 Consumo de tempo Depende do algoritmo ORDENE. Se cada dígito é um inteiro de 1 a k, então podemos usar o COUNTINGSORT. Neste caso, o consumo de tempo é Θ(d(k + n)). Se d é limitado por uma constante (ou seja, se d = O(1)) e k = O(n), então o consumo de tempo é Θ(n). Algoritmos p. 11
29 Bucket Sort Recebe um inteiro n e um vetor A[1..n] onde cada elemento é um número no intervalo [0, 1). Algoritmos p. 12
30 Bucket Sort Recebe um inteiro n e um vetor A[1..n] onde cada elemento é um número no intervalo [0, 1). Devolve um vetor C[1..n] com os elementos de A[1..n] em ordem crescente. Algoritmos p. 12
31 Bucket Sort Recebe um inteiro n e um vetor A[1..n] onde cada elemento é um número no intervalo [0, 1). Devolve um vetor C[1..n] com os elementos de A[1..n] em ordem crescente. BUCKETSORT(A, n) 1 para i 0 até n 1 faça 2 B[i] NIL 3 para i 1 até n faça 4 INSIRA(B[ n A[i] ], A[i]) 5 para i 0 até n 1 faça 6 ORDENELISTA(B[i]) 7 C CONCATENE(B, n) 8 devolva C Algoritmos p. 12
32 Bucket Sort BUCKETSORT(A, n) 1 para i 0 até n 1 faça 2 B[i] NIL 3 para i 1 até n faça 4 INSIRA(B[ n A[i] ], A[i]) 5 para i 0 até n 1 faça 6 ORDENELISTA(B[i]) 7 C CONCATENE(B, n) 8 devolva C Algoritmos p. 13
33 Bucket Sort BUCKETSORT(A, n) 1 para i 0 até n 1 faça 2 B[i] NIL 3 para i 1 até n faça 4 INSIRA(B[ n A[i] ], A[i]) 5 para i 0 até n 1 faça 6 ORDENELISTA(B[i]) 7 C CONCATENE(B, n) 8 devolva C INSIRA(p,x): insere x na lista apontada por p ORDENELISTA(p): ordena a lista apontada por p CONCATENE(B, n): devolve a lista obtida da concatenação das listas apontadas por B[0],...,B[n 1]. Algoritmos p. 13
34 Bucket Sort BUCKETSORT(A, n) 1 para i 0 até n 1 faça 2 B[i] NIL 3 para i 1 até n faça 4 INSIRA(B[ n A[i] ], A[i]) 5 para i 0 até n 1 faça 6 ORDENELISTA(B[i]) 7 C CONCATENE(B, n) 8 devolva C Se os números em A[1..n] forem uniformemente distribuídos no intervalo [0, 1), então o consumo de tempo esperado é linear em n. Algoritmos p. 13
35 Bucket Sort Se os números em A[1..n] forem uniformemente distribuídos no intervalo [0, 1), então o número esperado de elementos de A[1..n] em cada lista B[i] é Θ(1). Algoritmos p. 14
36 Bucket Sort Se os números em A[1..n] forem uniformemente distribuídos no intervalo [0, 1), então o número esperado de elementos de A[1..n] em cada lista B[i] é Θ(1). Logo, o consumo de tempo esperado para ordenar cada uma das listas B[i] é linear Θ(1). Assim, o consumo de tempo esperado do algoritmo BUCKETSORT neste caso é Θ(n). Algoritmos p. 14
37 Bucket Sort Se os números em A[1..n] forem uniformemente distribuídos no intervalo [0, 1), então o número esperado de elementos de A[1..n] em cada lista B[i] é Θ(1). Logo, o consumo de tempo esperado para ordenar cada uma das listas B[i] é linear Θ(1). Assim, o consumo de tempo esperado do algoritmo BUCKETSORT neste caso é Θ(n). Algoritmos p. 14
38 Exercícios Exercício 10.A Desenhe a árvore de decisão para o SELECTIONSORT aplicado a A[1.. 3] com todos os elementos distintos. Exercício 10.B [CLRS 8.1-1] Qual o menor profundidade (= menor nível) que uma folha pode ter em uma árvore de decisão que descreve um algoritmo de ordenação baseado em comparações? Exercício 10.C [CLRS 8.1-2] Mostre que lg(n!) = Ω(nlg n) sem usar a fórmula de Stirling. Sugestão: Calcule P n k=n/2 lg k. Use as técnicas de CLRS A.2. Algoritmos p. 15
39 Exercícios Exercício 10.D [CLRS 8.2-1] Simule a execução do COUNTINGSORT usando como entrada o vetor A[1.. 11] = 7,1, 3,1,2,4, 5,7,2,4,3. Exercício 10.E [CLRS 8.2-2] Mostre que o COUNTINGSORT é estável. Exercício 10.F [CLRS 8.2-3] Suponha que o para da linha 7 do COUNTINGSORT é substituído por 7 para j 1 até n faça Mostre que o ainda funciona. O algoritmo resultante continua estável? Algoritmos p. 16
Tópico 5 Algoritmos de Ordenação. Parte II - métodos de ordenação: counting sort, radix sort e bucket sort.
Tópico 5 Algoritmos de Ordenação Parte II - métodos de ordenação: counting sort, radix sort e bucket sort. 1 Árvore de Decisão Todos os algoritmos descritos anteriormente utilizam comparações para determinar
Ordenação em Tempo Linear
Ordenação em Tempo Linear Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 19 Algoritmos e Estruturas de Dados I Ordenação em tempo linear Algoritmos de ordenação por comparação: InsertSort; Quicksort;
Análise de algoritmos
Análise de algoritmos Ordenação em tempo linear Prof. Flávio Rogério Uber (UEM/DIN) Autor: Prof. Marco Aurélio Lopes Barbosa (UEM/DIN) Conteúdo Limites inferiores para ordenação por comparações Ordenação
Estruturas de Dados 2
Estruturas de Dados 2 Algoritmos de Ordenação em Tempo Linear IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/38 Algoritmos de Ordenação em Tempo Linear Limite Assintótico
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 10 Métodos de Ordenação de Complexidade Linear Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída:
Algoritmos de Ordenação: Tempo Linear
Algoritmos de Ordenação: Tempo Linear ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 10/2008 Material
AULA 13. Algoritmos p.526/582
AULA 13 Algoritmos p.526/582 Ordenação em tempo linear CLRS 8.2 8.3 Algoritmos p.527/582 Ordenação por contagem Recebe vetores A[1.. n] e B[1.. n] e devolve no vetor B[1.. n] os elementos de A[1.. n] em
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
Quão rápido podemos ordenar? Aula07-LimiteInferiorpara Ordenação Ordenação em Tempo Linear Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Um algoritmo baseado em comparação para
Análise de Algoritmos Algoritmos de Ordenação
Análise de Algoritmos Algoritmos de Ordenação Nelson Cruz Sampaio Neto [email protected] Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação 5 de abril de 2016
Aula 2. Divisão e conquista. Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT)
Aula 2 Divisão e conquista Exemplo 1: Número de inversões de uma permutação (problema 2-4 do CLRS; veja também sec 5.4 do KT) Exemplo 2: Par de pontos mais próximos (sec 33.4 do CLRS) Essas transparências
Análise de Algoritmos
Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Introdução CLRS 2.2 e 3.1 AU 3.3, 3.4 e 3.6 Essas transparências foram
Limite assintótico para a ordenação, Ordenação em tempo linear
Algoritmos e Estruturas de Dados I Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco [email protected] 1Q-2017 1 Ordenação Ordenar corresponde ao processo
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP Manber, Introduction to Algorithms (989) Livro de abril de 08 Conteúdo programático
Ordenação. Prof. Túlio A. M. Toffolo Prof. Marco Antonio M. Carvalho BCC402 Aula 04 Algoritmos e Programação Avançada
Ordenação Prof. Túlio A. M. Toffolo Prof. Marco Antonio M. Carvalho http://www.toffolo.com.br BCC402 Aula 04 Algoritmos e Programação Avançada Aplicações Como testar se todos os elementos de um conjunto
Análise e Síntese de Algoritmos. Revisão CLRS, Cap. 7-10
Análise e Síntese de Algoritmos Revisão CLRS, Cap. 7-10 Contexto Revisão Algoritmos e complexidade Notação Fundamentos: somatórios, recorrências, etc. Exemplos de algoritmos Ordenação Procura Selecção
Melhores momentos AULA 1. Algoritmos p.38/86
Melhores momentos AULA 1 Algoritmos p.38/86 Definições x := inteiro i tal que i x < i + 1 x := inteiro j tal que j 1 < x j Exercício A1.B Mostre que n 1 2 n 2 n 2 e n 2 n 2 n + 1 2 para qualquer inteiro
Mergesort. Aula 04. Algoritmo Mergesort. Divisão e Conquista. Divisão e Conquista- MergeSort
Mergesort Aula 0 Divisão e Conquista- MergeSort Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Mergesort é um algoritmo de ordenação recursivo Ele recursivamente ordena as duas
Algoritmos de Ordenação. Cota inferior. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO
Algoritmos de Ordenação Cota inferior Professora: Fátima L. S. Nunes 1 1 1 Algoritmos de Ordenação Algoritmos de ordenação que já conhecemos: 2 2 2 Algoritmos de Ordenação Algoritmos de ordenação que já
Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear
MC3305 Algoritmos e Estruturas de Dados II Aula 03 Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 2 Ordenação Ordenar corresponde
Mediana. Aula 09. Menor. i-ésimo menor elemento. Algoritmo de Seleção. -ésimo menor elemento. Mediana é o n+1. -ésimo menor ou o n+1
Mediana Aula 09 Algoritmo de Seleção Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Baseado em slides do Prof. Paulo Fiofilof Mediana é o n+1 2 -ésimo menor ou o n+1 2 -ésimo
ANÁLISE DE ALGORITMOS
ANÁLISE DE ALGORITMOS www.ime.usp.br/ pf/analise de algoritmos/ Paulo Feofiloff Transparências baseadas no Introduction to Algorithms de Cormen, Leiserson, Rivest, Stein A análise de algoritmos é uma disciplina
Algoritmos de ordenação Quicksort
Algoritmos de ordenação Quicksort Sumário Introdução Descrição do quicksort Desempenho do quicksort Pior caso Melhor caso Particionamento balanceado Versão aleatória do quicksort Análise do quicksort Pior
Análise de algoritmos
Análise de algoritmos Recorrências Conteúdo Introdução O método mestre Referências Introdução O tempo de execução de um algoritmo recursivo pode frequentemente ser descrito por uma equação de recorrência.
Algoritmos de Ordenação
Algoritmos de Ordenação ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 10/2008 Material baseado em
Ordenação. Prof. Jonas Potros
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
Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
Busca Binária. Aula 05. Busca em um vetor ordenado. Análise do Busca Binária. Equações com Recorrência
Busca Binária Aula 05 Equações com Recorrência Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Idéia: Divisão e Conquista Busca_Binária(A[l...r],k) 1:if r < lthen 2: index = 1
Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.
Lista 1 8 de abril de 2013 1 Exercícios Básicos 1.1 Na bibliografia Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. 1.2 Outros 1. Projete
ANÁLISE DE ALGORITMOS
ANÁLISE DE ALGORITMOS Paulo Feofiloff Instituto de Matemática e Estatística Universidade de São Paulo agosto 2009 Introdução P. Feofiloff (IME-USP) Análise de Algoritmos agosto 2009 2 / 102 Introdução
Algoritmos de ordenação: Bucketsort, Radixsort e Seleção
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Algoritmos de ordenação: Bucketsort, Radixsort e Seleção Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/
Radix Sorting. Várias aplicações têm chaves que são inteiros, definidos dentro de um intervalo
Radix Sorting Os registros a serem ordenados podem ter chaves bastante complexas, como por exemplo sequências de caracteres (lista telefônica) o Ordenação via comparação de chaves Várias aplicações têm
AULA 20. Algoritmos p.725/759
AULA 20 Algoritmos p.725/759 Mais análise amortizada CLR 18 ou CLRS 17 Algoritmos p.726/759 Análise amortizada Análise amortizada = análise do consumo de tempo de uma seqüência de operações Usada nos casos
Algoritmos de Ordenação: QuickSort
Algoritmos de Ordenação: QuickSort ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 10/2008 Material
Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: ClaudioQuick F. M.
Quick Sort Considerações Sobre Algoritmos de Ordenação Estagiário PAE: Jesimar da S. Arantes Professor: Claudio F. M. Toledo 27 de Setembro de 2017 Estagiário PAE: Jesimar da S. Arantes Professor: ClaudioQuick
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos A. G. Silva Baseado nos materiais de Souza, Silva, Lee, Rezende, Miyazawa Unicamp Ribeiro FCUP 18 de agosto de 2017 Conteúdo programático Introdução (4 horas/aula) Notação
Análise amortizada CLRS 17. Algoritmos p. 1
Análise amortizada CLRS 17 Algoritmos p. 1 Análise amortizada Serve para analisar uma sequência de operações ou iterações onde o pior caso individual não reflete o pior caso da sequência. Em outras palavras,
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar
Ordenação em Memória Primária Estrutura de Dados II
- Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Ordenação em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078-2017-I Prof. Marcelo Otone Aguiar [email protected]
Algoritmos gulosos (greedy)
Algoritmos gulosos (greedy) CLRS 16.1 e mais... Algoritmos p. 1 Algoritmos gulosos Algoritmo guloso procura ótimo local e acaba obtendo ótimo global costuma ser muito simples e intuitivo muito eficiente
Pedro Ribeiro 2014/2015
Ordenação Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Ordenação 2014/2015 1 / 35 Ordenação A ordenação é um passo inicial para muitos outros algoritmos Ex: encontrar a mediana Quando não
Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:
ORDENAÇÃO A atividade de ordenação é o processo de rearranjo de um certo conjunto de objetos de acordo com um critério (ordem) específico. O objetivo da ordenação é facilitar a localização dos membros
Ordenação de Dados. Ordenação de Dados
UFSC-CTC-INE INE38 - Estruturas de Dados Ordenação de Dados Prof. Ronaldo S. Mello 00/ Ordenação de Dados Processo bastante utilizado na computação de uma estrutura de dados Dados ordenados garantem uma
I. Correção de Algoritmos Não-Recursivos
I. Correção de Algoritmos Não-Recursivos Nos exercícios a seguir, você deverá demonstrar a correção dos algoritmos por meio dos conceitos vistos nos slides da Aula 03. 1) Prove que o seguinte algoritmo
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
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 Tópicos Introdução Ordenação por bolha (bubble sort)
Estruturas de Dados 2
Estruturas de Dados 2 Recorrências IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/31 Recorrências Análise da Eficiência de Algoritmos: Velocidade de Execução; Análise
UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior
UNIVERSIDADE FEDERAL DO PIAUÍ COLÉGIO TÉCNICO DE TERESINA-TÉCNICO EM INFORMÁTICA DISCIPLINA: ESTRUTURA DE DADOS PROFESSOR: Valdemir Junior ALGORITMO DE ORDENAÇÃO HEAPSORT Alyson Pereira Barbosa Erisvaldo
MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade
MCTA028 Programação Estruturada Aula 19 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 3Q-2017 1 0 A = n-1... 2 0 A = n-1... - O programa funciona (está correto)? - Como medir/mensurar
Aula 03: Análise de algoritmos melhor caso, pior caso e caso médio
Aula 03: Análise de algoritmos melhor caso, pior caso e caso médio David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas
Análise de algoritmos
Análise de algoritmos Introdução à Ciência de Computação II Baseados nos Slides do Prof. Dr. Thiago A. S. Pardo Análise de algoritmos Existem basicamente 2 formas de estimar o tempo de execução de programas
ORDENAÇÃO DE ARQUIVOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ORDENAÇÃO DE ARQUIVOS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ORDENAÇÃO Busca binária exige que arquivo esteja ordenado Como ordenar um arquivo? INSTITUTO DE COMPUTAÇÃO - UFF 2 MÉTODOS
Quick Sort. Considerações Sobre Algoritmos de Ordenação. Estagiário PAE: Jesimar da S. Arantes Professor: Claudio Quick F. M.
Quick Sort Considerações Sobre Algoritmos de Ordenação Professor: Claudio F. M. Toledo 26 de Outubro de 2016 Professor: Claudio Quick F. M. Sort Toledo 26 de Outubro de 2016 1 / 14 Quicksort: Escolha do
Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013
Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void
Algoritmos de Ordenação: Cota Inferior
Algoritmos de Ordenação: Cota Inferior ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 10/2008 Material
ALGORITMOS DE ORDENAÇÃO
ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,
SCC-601 Introdução à Ciência da Computação II. Ordenação e Complexidade Parte 3. Lucas Antiqueira
SCC-60 Introdução à Ciência da Computação II Ordenação e Complexidade Parte 3 Lucas Antiqueira Ordenação: Utiliza uma estrutura de dados chamada heap para ordenar. Um heap é um vetor (array) que representa
Extra- Algoritmos de Ordenação
Extra- Algoritmos de Ordenação 1 Introdução 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
Aula 02 Notação Assintótica p. 4. Usodanotação O. Notação O. Notação O, Ω, ΘeExemplos. Intuitivamente... O(f(n)) funções que não crescem mais
Notação O Aula 02 Notação Assintótica Notação O, Ω, Θe Prof. Marco Aurélio Stefanes marco em dct.ufms.br www.dct.ufms.br/ marco Intuitivamente... O() funções que não crescem mais rápido que funções menores
FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto a Análise de Algoritmos I Lista de Exercícios 1
FACULDADE CAMPO LIMPO PAULISTA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Projeto a Análise de Algoritmos I Lista de Exercícios 1 Prof. Osvaldo. 1. Descreva alguns problemas associados ao emprego de metodologias
LISTA DE EXERCÍCIOS 1
UFMG/ICEx/DCC Projeto e Análise de Algoritmos LISTA DE EXERCÍCIOS 1 Pós-Graduação em Ciência da Computação 1 o Semestre de 2011 Observações: 1. Comece a fazer esta lista imediatamente. Você nunca terá
Ordenação. Última alteração: 31 de Agosto de Transparências elaboradas por Charles Ornelas Almeida, Israel Guerra e Nivio Ziviani
Ordenação Última alteração: 31 de Agosto de 2010 Transparências elaboradas por Charles Ornelas Almeida, Israel Guerra e Nivio Ziviani Projeto de Algoritmos Cap.4 Ordenação 1 Conteúdo do Capítulo 4.1 Ordenação
Ordenação: Heapsort. Algoritmos e Estruturas de Dados II
Ordenação: Heapsort Algoritmos e Estruturas de Dados II Introdução Possui o mesmo princípio de funcionamento da ordenação por seleção Selecione o menor item do vetor Troque-o pelo item da primeira posição
Aula 1. Teoria da Computação III
Aula 1 Teoria da Computação III Complexidade de Algoritmos Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável
Métodos de Ordenação Parte I
Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno [email protected] / [email protected] Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar
Ordenação de Dados (III) HeapSort
UFSC-CTC-INE INE53 - Estruturas de Dados Ordenação de Dados (III) Prof. Ronaldo S. Mello 00/ HeapSort HeapSort também é um método de seleção ordena através de sucessivas seleções do elemento correto a
Teoria da Computação Aula 9 Noções de Complexidade
Teoria da Computação Aula 9 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Análise de um Algoritmo em particular Qual é o custo de usar um dado algoritmo para resolver um
5. Algoritmos de Ordenação
Introdução à Computação II 5952011 5. Algoritmos de Ordenação Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 5.1. Ordenação por Inserção 5.2. Ordenação por Seleção
LISTA DE EXERCÍCIOS 1
UFMG/ICEx/DCC Algoritmos e Estruturas de Dados II LISTA DE EXERCÍCIOS 1 Graduação (Ciências Exatas & Engenharias) 1 o Semestre de 2007 Exercícios a serem entregues: 2, 4, 9, 12, 13, 17, 18, 19, 21, 22.
Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido
1 a Lista de Exercícios
Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti
SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios
DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÂO SCC0203 - Algoritmos e Estruturas de Dados II 6ª lista de exercícios Questão 1 Explique a seguinte sentença: Árvores-B são construídas de baixo para cima, enquanto
MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017
PROVA 1 MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017 Nome: Número USP: Instruções: (1 ) Esta prova é individual. (2 ) Não destaque as folhas deste caderno. (3 ) A prova consiste de 6
