Análise de Algoritmos
|
|
- Edson Leal Carreiro
- 5 Há anos
- Visualizações:
Transcrição
1 Algoritmos p. 1/18 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina.
2 Algoritmos p. 2/18 Análise amortizada CLRS 17
3 Algoritmos p. 3/18 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, serve para melhorar análises de pior caso que baseiem-se diretamente no pior caso de uma operação/iteração e que deem uma delimitação frouxa para o tempo de pior caso da sequência. Métodos: agregado por créditos potencial
4 Algoritmos p. 4/18 Odômetro binário Considere um contador binário, inicialmente zerado, representado em um vetor A[0..n 1], onde cada A[i] vale 0 ou 1. Operação: incrementa. INCREMENTA (A, n) 1 i 0 2 enquanto i < n e A[i] = 1 faça 3 A[i] 0 4 i i+1 5 se i < n 6 então A[i] 1 Consumo de tempo no pior caso: Θ(n)
5 Algoritmos p. 5/18 Odômetro binário Considere um contador binário, inicialmente zerado, representado em um vetor A[0..n 1], onde cada A[i] vale 0 ou 1. Operação: INCREMENTA. Consumo de tempo no pior caso: Θ(n). O odômetro dá uma volta completa a cada 2 n execuções do INCREMENTA. Quanto tempo leva para o odômetro dar uma volta completa? Leva O(n2 n ). Será que é Θ(n2 n )?
6 Odômetro binário i Algoritmos p. 6/18
7 Odômetro binário i Algoritmos p. 7/18
8 Algoritmos p. 8/18 Método agregado Custo da volta completa é proporcional ao número de vezes que os bits são alterados. bit 0 muda 2 n vezes bit 1 muda 2 n 1 vezes bit 2 muda 2 n 2 vezes bit n 2 muda 4 vezes bit n 1 muda 2 vezes Total de alterações de bits: n i=1 2i < 2 2 n. Custo da volta completa: Θ(2 n ). Custo amortizado por INCREMENTA: Θ(1).
9 Algoritmos p. 9/18 Análise por créditos Atribuímos um número fixo de créditos por operação INCREMENTA de modo a pagar por toda alteração de bit. Objetivo: atribuir o menor número possível de créditos que seja ainda suficiente para pagar por todas as alterações. Relembre... INCREMENTA (A, n) 1 i 0 2 enquanto i < n e A[i] = 1 faça 3 A[i] 0 5 i i+1 6 se i < n 7 então A[i] 1
10 Algoritmos p. 10/18 Análise por créditos Atribuímos 2 créditos por INCREMENTA. INCREMENTA (A, n) 1 i 0 2 enquanto i < n e A[i] = 1 faça 3 A[i] 0 4 i i+1 5 se i < n 6 então A[i] 1 Um é usado para pagar pela alteração da linha 6. O outro fica armazenado sobre o bit alterado na linha 6. Há um crédito armazenado sobre cada bit que vale 1. Alterações da linha 3 são pagas por créditos armazenados por chamadas anteriores do INCREMENTA.
11 Algoritmos p. 11/18 Análise por créditos Atribuímos 2 créditos por INCREMENTA. INCREMENTA (A, n) 1 i 0 2 enquanto i < n e A[i] = 1 faça 3 A[i] 0 4 i i+1 5 se i < n 6 então A[i] 1 Um é usado para pagar pela alteração da linha 6. O outro fica armazenado sobre o bit alterado na linha 6. O número de créditos armazenados em cada instante é o número de bits que valem 1, logo é sempre não negativo. Custo amortizado por INCREMENTA: 2
12 Algoritmos p. 12/18 Método do potencial Seja φ(a) o número de bits que valem 1 em A[0..n 1]. Seja A i o estado do contador A após o i-ésimo INCREMENTA. Note que φ(a 0 ) = 0 e φ(a i ) 0. Seja c i o número de bits alterados no i-ésimo INCREMENTA. Note que c i 1+t i onde t i é o número de bits 1 consecutivos no final do contador A. Note que φ(a i ) φ(a i 1 ) 1 t i. Seja ĉ i = c i +φ(a i ) φ(a i 1 ) (1+t i )+(1 t i ) = 2.
13 Algoritmos p. 13/18 Método do potencial Seja φ(a) o número de bits que valem 1 em A[0..n 1]. Seja A i o estado do contador A após o i-ésimo INCREMENTA. Temos que φ(a 0 ) = 0 e φ(a i ) 0. Seja c i o número de bits alterados no i-ésimo INCREMENTA e t i é o número de bits 1 consecutivos no final do contador A. Temos que c i 1+t i. Seja ĉ i = c i +φ(a i ) φ(a i 1 ) (1+t i )+(1 t i ) = 2. Então o custo da volta completa é c = 2 n c i = 2 n ĉ i +φ(a 0 ) φ(a 2 n) 2 n ĉ i 2 2 n. i=1 i=1 i=1 Custo amortizado por INCREMENTA: 2 (valor do ĉ i )
14 Algoritmos p. 14/18 Outro exemplo: pilha Operações básicas: empilha, desempilha.
15 Algoritmos p. 14/18 Outro exemplo: pilha Operações básicas: empilha, desempilha. OP: operação única de acesso
16 Algoritmos p. 14/18 Outro exemplo: pilha Operações básicas: empilha, desempilha. OP: operação única de acesso OP (n) 1 exige que a pilha tenha n elementos 2 desempilhe n itens da pilha 3 empilhe um item na pilha
17 Algoritmos p. 14/18 Outro exemplo: pilha Operações básicas: empilha, desempilha. OP: operação única de acesso OP (n) 1 exige que a pilha tenha n elementos 2 desempilhe n itens da pilha 3 empilhe um item na pilha Consumo de tempo de OP(n) é Θ(n).
18 Algoritmos p. 14/18 Outro exemplo: pilha Operações básicas: empilha, desempilha. OP: operação única de acesso OP (n) 1 exige que a pilha tenha n elementos 2 desempilhe n itens da pilha 3 empilhe um item na pilha Consumo de tempo de OP(n) é Θ(n). Sequência de m operações OP. Consumo de tempo de uma operação no pior caso: Θ(m).
19 Algoritmos p. 14/18 Outro exemplo: pilha Operações básicas: empilha, desempilha. OP: operação única de acesso OP (n) 1 exige que a pilha tenha n elementos 2 desempilhe n itens da pilha 3 empilhe um item na pilha Consumo de tempo de OP(n) é Θ(n). Sequência de m operações OP. Consumo de tempo de uma operação no pior caso: Θ(m). Qual o consumo total das m operações no pior caso?
20 Algoritmos p. 15/18 Outro exemplo: pilha Consumo de tempo de uma operação no pior caso: Θ(m). Qual o consumo das m operações no pior caso? Θ(m 2 )?
21 Algoritmos p. 15/18 Outro exemplo: pilha Consumo de tempo de uma operação no pior caso: Θ(m). Qual o consumo das m operações no pior caso? Θ(m 2 )? Em aula... análise por créditos Quantos créditos damos para cada chamada de OP?
22 Algoritmos p. 15/18 Outro exemplo: pilha Consumo de tempo de uma operação no pior caso: Θ(m). Qual o consumo das m operações no pior caso? Θ(m 2 )? Em aula... análise por créditos Quantos créditos damos para cada chamada de OP? análise por função potencial Qual seria uma boa função potencial neste caso?
23 Algoritmos p. 16/18 Tabelas dinâmicas Vetor que sofre inserções. Cada inserção custa 1.
24 Algoritmos p. 16/18 Tabelas dinâmicas Vetor que sofre inserções. Cada inserção custa 1. Inicialmente o vetor tem 0 posições.
25 Algoritmos p. 16/18 Tabelas dinâmicas Vetor que sofre inserções. Cada inserção custa 1. Inicialmente o vetor tem 0 posições. Na primeira inserção, um vetor com uma posição é alocado, e o item em questão é inserido.
26 Algoritmos p. 16/18 Tabelas dinâmicas Vetor que sofre inserções. Cada inserção custa 1. Inicialmente o vetor tem 0 posições. Na primeira inserção, um vetor com uma posição é alocado, e o item em questão é inserido. A cada inserção em que o vetor está cheio, antes da inserção propriamente dita, um vetor do dobro do tamanho é alocado, o vetor anterior é copiado para o novo vetor e depois é desalocado.
27 Algoritmos p. 16/18 Tabelas dinâmicas Vetor que sofre inserções. Cada inserção custa 1. Inicialmente o vetor tem 0 posições. Na primeira inserção, um vetor com uma posição é alocado, e o item em questão é inserido. A cada inserção em que o vetor está cheio, antes da inserção propriamente dita, um vetor do dobro do tamanho é alocado, o vetor anterior é copiado para o novo vetor e depois é desalocado. O custo no pior caso de uma inserção é alto, pois pode haver uma realocação.
28 Algoritmos p. 17/18 Tabelas dinâmicas Para i = 0,1,2,...,n 1, { 1 se i não é potência de 2 c i = i+1 se i é potência de 2
29 Algoritmos p. 17/18 Tabelas dinâmicas Para i = 0,1,2,...,n 1, { 1 se i não é potência de 2 c i = i+1 se i é potência de 2 Método agregado: n 1 i=0 onde k = lgn. c i = n+( k )
30 Algoritmos p. 17/18 Tabelas dinâmicas Para i = 0,1,2,...,n 1, { 1 se i não é potência de 2 c i = i+1 se i é potência de 2 Método agregado: n 1 i=0 onde k = lgn. c i = n+( k ) Logo n 1 i=0 c i = n+2 k+1 1 n+2n 1 < 3n.
31 Algoritmos p. 17/18 Tabelas dinâmicas Para i = 0,1,2,...,n 1, { 1 se i não é potência de 2 c i = i+1 se i é potência de 2 Método agregado: n 1 i=0 onde k = lgn. c i = n+( k ) Logo n 1 i=0 c i = n+2 k+1 1 n+2n 1 < 3n. Custo amortizado por inserção: 3
32 Algoritmos p. 18/18 Análise por créditos Chame de velho um item que já estava no vetor no momento da última realocação do vetor, e de novos os itens inseridos após a última realocação.
33 Algoritmos p. 18/18 Análise por créditos Chame de velho um item que já estava no vetor no momento da última realocação do vetor, e de novos os itens inseridos após a última realocação. Atribuímos 3 créditos por inserção: um é usado para pagar pela inserção do item, os outros dois são armazenados sobre o item.
34 Algoritmos p. 18/18 Análise por créditos Chame de velho um item que já estava no vetor no momento da última realocação do vetor, e de novos os itens inseridos após a última realocação. Atribuímos 3 créditos por inserção: um é usado para pagar pela inserção do item, os outros dois são armazenados sobre o item. Ao ocorrer uma realocação, há 2 créditos sobre cada item novo no vetor, e isso é suficiente para pagar pela cópia de todos os itens do vetor para o novo vetor pois, quando o vetor está cheio, há um item novo para cada item velho.
35 Algoritmos p. 18/18 Análise por créditos Chame de velho um item que já estava no vetor no momento da última realocação do vetor, e de novos os itens inseridos após a última realocação. Atribuímos 3 créditos por inserção: um é usado para pagar pela inserção do item, os outros dois são armazenados sobre o item. Ao ocorrer uma realocação, há 2 créditos sobre cada item novo no vetor, e isso é suficiente para pagar pela cópia de todos os itens do vetor para o novo vetor pois, quando o vetor está cheio, há um item novo para cada item velho. Em outras palavras, o segundo crédito paga a cópia do item na primeira realocação que acontecer após a sua inserção, e o terceiro crédito paga a cópia de um item velho nesta mesma realocaçã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,
Leia maisAULA 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
Leia maisAula 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
Leia maisAnálise de Algoritmos
Algoritmos p. 1/25 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/25 Ordenação em tempo linear CLRS cap 8 Algoritmos
Leia maisAnálise Amortizada. Exemplo: Tabelas dinâmicas. Resulta da análise de uma sequência de operações numa estrutura de dados.
Análise Amortizada Análise Amortizada Fernando Lobo Algoritmos e Estrutura de Dados II Resulta da análise de uma sequência de operações numa estrutura de dados. Apesar de uma operação individual poder
Leia maisAnálise de Algoritmos
Algoritmos p. 1/28 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/28 Análise de Algoritmos CLRS 7 Essas transparências
Leia maisAnálise Amortizada. Fernando Lobo. Algoritmos e Estrutura de Dados II. Resulta da análise de uma sequência de operações numa estrutura de dados.
Análise Amortizada Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 35 Análise Amortizada Resulta da análise de uma sequência de operações numa estrutura de dados. Apesar de uma operação individual
Leia maisAnálise de Algoritmos
Análise de Algoritmos CLRS 2.3, 3.2, 4.1 e 4.2 Essas transparências foram adaptadas das transparências do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Número de inversões Problema:
Leia maisAná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 Matroides e o método guloso U: conjunto finito arbitrário. C: família
Leia maisAná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 Aula 3 Transformada rápida de Fourier Secs 30.1 e 30.2 do CLRS e 5.6
Leia maisAná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
Leia maisAULA 21. Algoritmos p.760/792
AULA 21 Algoritmos p.760/792 Busca de palavras (string matching) CLRS 32 Algoritmos p.761/792 Busca de palavras em um texto Dizemos que um vetor P [1.. m] ocorre em um vetor T [1.. n] se P [1.. m] = T
Leia maisAula 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
Leia maisOrdenação em tempo linear
Ordenação em tempo linear CLRS cap 8 Algoritmos p. 1 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
Leia maisAlgoritmos de ordenação: Inserção e Shellsort
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Algoritmos de ordenação: Inserção e Shellsort Algoritmos e Estruturas de Dados I Slides adaptados dos slides do livro texto (Ziviani) e dos slides
Leia maisAnálise de Algoritmos
Algoritmos p. 1/22 Análise de Algoritmos Parte destes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 2/22 Árvore geradora mínima CLRS Cap 23 Algoritmos
Leia maisMediana. 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
Leia maisAná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 Cortes em grafos G: grafo (não orientado) sem laços, possivelmente com
Leia maisAULA 22. Algoritmos p.793/823
AULA 22 Algoritmos p.793/823 Conjuntos disjuntos dinâmicos CLR 22 CLRS 21 Algoritmos p.794/823 Conjuntos disjuntos Seja S = {S 1, S 2,..., S n } uma coleção de conjuntos disjuntos, ou seja, S i S j = para
Leia maisElementos de Análise Assintótica
Elementos de Análise Assintótica Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia 23 de Março de 2018 Aula de hoje Nesta aula veremos: Elementos de Análise Assintótica
Leia maisUniversidade 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 Alocação sequencial Listas lineares,
Leia maisINF70 Gerenciamento de Banco de Dados 2 Índices baseados em Hash
INF70 Gerenciamento de Banco de Dados Índices baseados em Hash Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/gbd Roteiro Fundamentos Hash Estático Hash Extensível Hash Linear Considerações
Leia maisAlgoritmos e Estruturas de Dados I 01/2013. Vetores e Recursividade. Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I 01/2013 Vetores e Recursividade Pedro O.S. Vaz de Melo Problema 1 Implemente uma função que classifique os elementos de um vetor em ordem crescente usando o algoritmo
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa
Leia maisGBC053 Gerenciamento de Banco de Dados Índices baseados em Hash
GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC UFU/FACOM/BCC GBD Página: Roteiro Fundamentos Hash
Leia maisConjuntos disjuntos dinâmicos
Conjuntos disjuntos dinâmicos CLRS 21 Algoritmos p. 1 Conjuntos disjuntos Seja S = {S 1,S 2,...,S n } uma coleção de conjuntos disjuntos, ou seja, S i S j = para todo i j. Algoritmos p. 2 Conjuntos disjuntos
Leia maisProva Substitutiva PMR3201 1o. semestre 2018 Prof. Thiago Martins
Prova Substitutiva PMR301 1o. semestre 018 Prof. Thiago Martins Instruções Escreva o nome e o número USP na folha de papel almaço. Numere cada página. Indique o total de páginas na primeira página. Os
Leia maisTécnicas de projeto de algoritmos: Indução
Técnicas de projeto de algoritmos: Induçã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 dbeder@usp.br 08/2008
Leia mais# Estrutura de Dados # Aula 06 Pilhas Estáticas. Prof. Leinylson Fontinele Pereira
# Estrutura de Dados # Aula 06 Pilhas Estáticas Prof. Leinylson Fontinele Pereira Na aula anterior... Filas Estáticas Sequencial # Propriedades # Operações fundamentais Introdução 3 O que vamos aprender?
Leia maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 4: Listas Estáticas e Dinâmicas Listas Estáticas: com Vetores Dinâmicas: Listas Ligadas (com ponteiros) Variáveis e Métodos de Controle:
Leia mais2. Ordenação por Seleção
1 Algoritmos de Ordenação Simples (SelectionSort, InsertionSort, BubbleSort) 1. Introdução Objetivo: Determinar a seqüência ordenada dos elementos de um vetor numérico. Algumas considerações: O espaço
Leia mais- Métodos simples de busca - Métodos ingênuos de ordenação (introdução)
1 MCTA028 Programação Estruturada Busca e Ordenação (parte I) - Métodos simples de busca - Métodos ingênuos de ordenação (introdução) Material preparado a partir de slides dos profs. Jesús Mena-Chalco
Leia maisSCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha
Leia maisAlgoritmos 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 dbeder@usp.br 10/2008 Material baseado em
Leia maisMC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016
MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números
Leia maisUNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO
UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO SCC-602 Algoritmos e Estruturas de Dados I - EC Profa. Graça Nunes 2º. Semestre de 2010 Prova 1(Gabarito) 16/09/2010 Nome: Nro
Leia maisEndereçamento Aberto
Endereçamento Aberto 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 dbeder@usp.br 11/2008 Material baseado em slides
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 06: Análise de Algoritmos (Parte 3) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Leia maisPilhas e Filas. Nádia Félix e Hebert Coelho
Pilhas e Filas Nádia Félix e Hebert Coelho Vários slides foram adaptados de Nina Edelwais e Renata Galante Estrutura de Dados Série de Livros Didáticos - Informática - UFRGS Pilhas e filas Listas lineares
Leia maisArmazenamento em disco com uso de índices
Armazenamento em disco com uso de índices Vimos até o momento árvores onde a chave aparenta ser o único objeto de interesse. Contudo, como sugere a representação de um nó, constante no slide 82, a chave
Leia maisAnálise de Algoritmos
Análise de Algoritmos CLRS 2.2 e 3.1 AU 3.3, 3.4 e 3.6 Essas transparências foram adaptadas das transparências do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1 Intuitivamente...
Leia maisProgramação II Aula 07
Engenharias de Produção e Petróleo Programação II Aula 07 Adan Lucio P. Rodovia BR 101 Norte, Km. 60, Bairro Litorâneo, CEP 29932-540, São Mateus ES, Tel.: +55 (27) 3312-1511 - CEUNES Métodos de Ordenação
Leia maisAlgoritmos e estrutura de dados
Algoritmos e estrutura de dados Listas Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Listas Listas encadeadas
Leia maisTrabalho 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
Leia maisEstruturas de Dados Estruturas de Dados Fundamentais
Estruturas de Dados Estruturas de Dados Fundamentais Prof. Eduardo Alchieri Estruturas de Dados Fundamentais Todos os tipos abstratos de dados (pilhas, filas, deques, etc.) podem ser implementados usando
Leia maisClassificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort. Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional
Classificação e Pesquisa Aula 6 Métodos de Ordenação: ShellSort e QuickSort Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Plano de Ensino e Aprendizagem ( PEA) Algoritmo ShellSort Proposto por
Leia maisMC-102 Aula 19 Ponteiros II
MC-102 Aula 19 Ponteiros II Instituto de Computação Unicamp 20 de Outubro de 2016 Roteiro 1 Ponteiros e Alocação Dinâmica 2 Exemplo de Alocação Dinâmica de Vetores 3 Erros Comuns ao Usar Alocação Dinâmica
Leia maisAula 12 Métodos de Classificação: - Classificação por Inserção Direta - Classificação por Seleção Direta
Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Direta Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com Classificação por Inserção Métodos de Classificação em Memória
Leia maisAlgoritmo da IFT 2 / 16. Algoritmo da IFT Estrutura da fila de prioridade Resolvendo empates. Algoritmo 1 Algoritmo geral da IFT
Transformada Imagem-Floresta (Estrutura de dados) Prof. Dr. Paulo A. V. de Miranda Instituto de Matemática e Estatística (IME), Universidade de São Paulo (USP) pmiranda@vision.ime.usp.br 1 / 16 Algoritmo
Leia maisAULA 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
Leia maisAlgoritmos 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 dbeder@usp.br 10/2008 Material
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Métodos de pesquisa e classificação de dados (continuação) Estruturas de Dados 2 Algoritmo de busca Recebe como argumento
Leia maisOrdenaçã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
Leia maisAula 07: Algoritmos de busca e Listas encadeadas
BC1424 Algoritmos e Estruturas de Dados I Aula 07: Algoritmos de busca e Listas encadeadas Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2016 1 Busca de um elemento 2 Exemplo: Busca de um elemento
Leia maisAnálise de Algoritmos Algoritmos de Ordenação
Análise de Algoritmos Algoritmos de Ordenação Nelson Cruz Sampaio Neto nelsonneto@ufpa.br Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação 5 de abril de 2016
Leia maisAula 19 Conjuntos disjuntos (Union-find)
MC3305 Algoritmos e Estruturas de Dados II Aula 19 Conjuntos disjuntos (Union-find) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 2Q-2015 1 Números de Ackermann 2 3 Ackermann A função de Ackermann
Leia maisANÁ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
Leia mais03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II
03 Análise de Algoritmos (parte 3) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
Leia maisTeoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos e Algoritmos Preparado a partir do texto: Rangel, Socorro.
Leia maisPonteiros e alocação dinâmica de memória. Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto
Ponteiros e alocação dinâmica de memória Disciplina de Programação de Computadores I Universidade Federal de Ouro Preto Agenda Ponteiros Ponteiros e vetores Passagem por cópia e por referência Alocação
Leia maisdistância list ranking
List Ranking List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da lista L, s[u]=u. A distância entre i e j, d L (i,j),
Leia mais<identificador>[<tamanho>]: <tipo>;
Vetores e Constantes Imagine uma situação na qual fosse necessário armazenar 100 valores para processamento. Por exemplo, pode ser necessário armazenar as notas de 100 provas de uma turma de alunos. Uma
Leia maisOs 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
Leia maisCódigos convolucionais
Códigos convolucionais Luis Henrique Assumpção Lolis 29 de novembro de 2013 Luis Henrique Assumpção Lolis Códigos convolucionais 1 Conteúdo 1 Introdução e definição 2 Diagrama de árvores, de treliça e
Leia maisSistemas Operacionais
Sistemas Operacionais Gerenciamento de Memória Virtual Algoritmos de Paginação Norton Trevisan Roman Marcelo Morandini Jó Ueyama Apostila baseada nos trabalhos de Kalinka Castelo Branco, Antônio Carlos
Leia maisRadix 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
Leia maisHashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri
Hashing Externo SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri 1 Hashing 0 1 chave de busca K = LOWELL 2 h(k) endereço 4 (RRN 4) 3 4 5... LOWELL......
Leia maisProgramação de Computadores I. Aula - Vetores. Professor Ilaim Costa Junior.
Programação de Computadores I Aula - Vetores Professor Ilaim Costa Junior www.ic.uff.br/~ilaim Vetores Estruturas de dados composta Permitem a uma variável armazenar múltiplos valores de um mesmo tipo
Leia maisEstruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma
Leia maisAlgoritmos e Estruturas de Dados I Linguagem C
Algoritmos e Estruturas de Dados I (DCC/003) Algoritmos e Estruturas de Dados I Linguagem C Aula Tópico 11 Recursividade 1 Recursão Na linguagem C, uma função pode chamar outra função. A função main()
Leia maisUniversidade de São Paulo
Universidade de São Paulo Instituto de Ciências Matemáticas e Computação SCE5763 - Tipos e Estrutura de Dados - Luis Gustavo Nonato 2 a Lista de Exercícios 1. Seja A um array de inteiros. Escreva algoritmos
Leia maisUniversidade Federal de Mato Grosso do Sul. Lista de Exercícios 2
Universidade Federal de Mato Grosso do Sul Facom - Faculdade de Computação Programação de Computadores I - Engenharia Ambiental Lista de Exercícios 2 Exercícios usando if 1. Escreva um programa que leia
Leia mais10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa
10.1 Aula 10: Pilhas O conceito de pilha Algoritmos de inserção e remoção Exemplo: Notação Polonesa 10.2 Pilhas Uso eficiente de listas: inserções e remoções não devem acarretar movimentação de nós. A
Leia maisÁrvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes
Árvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II Graça Nunes Árvores Binárias Paginadas (Paged Binary Trees) 8 páginas-filhas 7 registros por página (por seek); Árvore de altura 2 e ordem
Leia maisSistemas de Computação. Seção Notas. Endereçamento de Memória. Notas. Oitava Aula. Haroldo Gambini Santos. 3 de setembro de 2009.
Sistemas de Computação Oitava Aula Haroldo Gambini Santos Universidade Federal de Ouro Preto - UFOP 3 de setembro de 2009 Haroldo Gambini Santos Sistemas de Computação 1/12 Seção 1 Endereçamento de Memória
Leia maisLista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2
Leia maisAula 17: Funções (Parte III) e Introdução a Vetores
Aula 17: Funções (Parte III) e Introdução a Vetores Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aula de Hoje 1 Exemplos
Leia maisBucketsort. CLRS sec 8.4. Algoritmos p. 1
Bucketsort CLRS sec 8.4 Algoritmos p. 1 Bucket Sort Recebe um inteiro n e um vetor A[1..n] onde cada elemento é um número no intervalo [0, 1). Algoritmos p. 2 Bucket Sort Recebe um inteiro n e um vetor
Leia maisMicroprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios
Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da
Leia maisProva de Recuperação PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins
Prova de Recuperação PMR21/PMR2 1o. semestre 2 Prof. Thiago Martins Instruções: screva o nome e o número USP na folha de papel almaço. 1. (2 pontos) Uma pilha é uma estrutura de dados na qual o elemento
Leia maisMC-102 Aula 20 Ponteiros III
MC-102 Aula 20 Ponteiros III Instituto de Computação Unicamp 20 de Outubro de 2016 Roteiro 1 Exemplo de Ponteiros e Alocação Dinâmica 2 Exercício 3 Informações Extras: Ponteiros para Ponteiros e Alocação
Leia mais16/11/2015 Lista Tipo de dado Lista - Implementação Lista - Implementação Lista - Implementação 3
Listas, pilhas e filas Profa. Vânia de Oliveira Neves Slides baseados no material da Profa. Graça Nunes Listas Lista Lista Uma Lista Linear é uma coleção ordenada de componentes de um mesmo tipo. Ela é
Leia maisIntrodução à Ciência da Computação II. Recursão. Prof. Ricardo J. G. B. Campello
Introdução à Ciência da Computação II Recursão Prof. Ricardo J. G. B. Campello Agradecimentos Parte dos slides a seguir são adaptações dos originais em Pascal gentilmente cedidos pelo Prof. Rudinei Goularte
Leia maisESTRUTURA DE DADOS (TCC )
ESTRUTURA DE DADOS (TCC-00.319) Listas lineares Cristina Boeres 2 Estrutura de Dados! Listas lineares! estática! dinâmicas! Como manipulá-las:! pilhas! filas Listas Lineares 3! fácil manipulação! agrupa
Leia maisBusca em vetores. Para encontrar um elemento em um vetor desordenado é caro Porém, inserir ou remover é barato.
Busca em vetores Para encontrar um elemento em um vetor desordenado é caro Porém, inserir ou remover é barato. Busca em vetores Quando especificamos uma propriedade que garanta alguma organização, isto
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso
Leia maisHASHING HASHING 6/10/2008
Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial
Leia maisÁrvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes
Árvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II Graça Nunes Problema Cenário até então Acesso a disco é caro (lento) Pesquisa binária é útil em índices ordenados... mas com índice grande
Leia maisESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS
ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS TEORIA CONJUNTO ORDENADO DE ITENS NO QUAL NOVOS ITENS PODEM SER INSERIDOS E A PARTIR DO QUAL PODEM SER ELIMINADOS ITENS EM UMA
Leia maisAula 19 Árvores Rubro-Negras
Algoritmos e Estruturas de Dados I Aula 19 Árvores Rubro-Negras Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br Q1-2017 1 Árvores de Busca Binária Por que ABBs? São estruturas eficientes de busca (se
Leia maisMétodos de Ordenação Parte I
Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar
Leia maisComplexidade Assintótica de Programas Letícia Rodrigues Bueno
Complexidade Assintótica de Programas Letícia Rodrigues Bueno Análise de Algoritmos 1. Introdução; Análise de Algoritmos 1. Introdução; 2. Conceitos básicos; Análise de Algoritmos 1. Introdução; 2. Conceitos
Leia maisComplexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger diego.buchinger@outlook.com diego.buchinger@udesc.br Prof. Cristiano Damiani Vasconcellos cristiano.vasconcellos@udesc.br Análise de complexidade de Estruturas
Leia maisProgramação Estruturada
Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2
Leia maisAlgoritimos e Estruturas de Dados III CIC210
Algoritimos e Estruturas de Dados III CIC210 Divisão e Conquista Haroldo Gambini Santos Concurso Universidade Federal de Ouro Preto - UFOP 3 de setembro de 2009 Haroldo Gambini Santos Divisão e Conquista
Leia maisDivisão e Conquista. Fernando Lobo. Algoritmos e Estrutura de Dados II. É uma técnica para resolver problemas (veremos outras técnicas mais adiante).
Divisão e Conquista Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 27 Divisão e Conquista É uma técnica para resolver problemas (veremos outras técnicas mais adiante). Consiste em 3 passos: Dividir
Leia maisMelhores 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
Leia maisEstruturas 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
Leia maisComplexidade de Algoritmos. Edson Prestes
Edson Prestes ACP - Condicionais A complexidade pessimista de se b então S é limitada da seguinte maneira A ordem da complexidade é ACP - Condicionais Qual é a complexidade do seguinte trecho de algoritmo?
Leia mais