Classes, Herança e Interfaces
|
|
|
- Amadeu Dreer Faria
- 8 Há anos
- Visualizações:
Transcrição
1 Escola de Artes, Ciências e Humanidades EACH-USP ACH2002 Introdução à Ciência da Computação II Professor: Delano Medeiros Beder revisada pelo professor: Luciano Digiampietri EACH Segundo Semestre de 2011 Lista de Exercícios Classes, Herança e Interfaces 1. Defina uma classe IntervaloDeTempo cujos objetos representam um intervalo de tempo em número de horas, minutos e segundos. O construtor de objetos dessa classe deve receber como argumento um número inteiro positivo, representando o número de segundos decorridos desde o instante inicial 00:00:00 horas e retornar um objeto da classe IntervaloDeTempo correspondente. Por exemplo, a expressão new IntervaloDeTempo(3500) deve retornar um objeto que represente 0 horas, 58 minutos e 20 segundos. Crie também uma classe para testar a classe definida. (Adaptado de [1]) 2. Defina uma classe Pessoa cujos objetos representam uma pessoa contendo as seguintes informações: nome, sexo, número do documento de identidade e data de nascimento da pessoa (dia, mês e ano). Defina um construtor de objetos dessa classe e também um método idade() para retornar a idade da pessoa (um número inteiro de anos) dado como argumento a data atual. Caso a data passada como argumento seja anterior à data de nascimento da pessoa o método deve retornar -1. (Adaptado de [1]) 3. Defina uma classe Aluno, subclasse da classe Pessoa, que contenha as seguintes informações adicionais: número de matrícula, curso no qual está matriculado, data de ingresso na universidade. Redefina o construtor de objetos da classe de maneira apropriada. Crie também uma classe para testar as classes definidas. (Adaptado de [1]) 4. Defina uma classe Conta, cujos objetos representam contas bancárias, contendo cada qual as informações: número da conta, nome e CPF do correntista, data de abertura da conta, senha e saldo corrente. Defina um construtor de objetos dessa classe que tenha como parâmetros essas informações (exceto o saldo da conta) e retorne um objeto da classe Conta com o saldo corrente igual a zero. Defina também dois métodos para implementação das operações de saque e de depósito na conta. Esses métodos devem retornar o saldo corrente da conta depois de efetuada a operação correspondente (suponha que o valor passado como argumento para o método é sempre um valor positivo). O método de saque não deverá alterar o saldo corrente da conta corrente da conta caso o montante do saque seja superior a esse saldo. Crie também uma classe para testar a classe definida. (Adaptado de [1]) 5. Defina uma classe ChequeEspecial, subclasse da classe Conta, que contenha como informação adicional o valor limite (negativo) para o saldo da conta. Redefina o construtor de objetos da classe de maneira apropriada e os demais métodos levando em consideração o limite do cheque especial. Crie também uma classe para testar a classe definida. (Adaptado de [1]) 1
2 6. Escreva duas classes que implementam a interface abaixo que contém métodos para ordenação e busca em vetores (arrays) de Strings e também para determinar a interseção entre dois vetores de Strings: interface OperacoesComVetoresDeStrings int busca (String[] v, String s); void ordena (String[] v); String[] intersecao(string[] v1, String[] v2) O método busca busca em qual posição do vetor v, a String s aparece. Se s não aparece no vetor, o método devolve -1, caso contrário ele devolve o índice no qual s se encontra. O método ordena recebe um vetor desordenado e o ordena. O método intersecao recebe dois vetores de Strings e retorna um novo vetor que contém a intersecção dois dois vetores passados como parâmetros. As classes que implementam a interface, porém, possuem algumas restrições: Não podem utilizar algoritmos iguais para implementar os métodos da interface. Em relação ao método de busca: utilize os algoritmos de busca binária e ternária. Complexidade de Algoritmos e Técnicas de Projeto de Algoritmos 1. Suponha um algoritmo A e um algoritmo B, com funções de complexidade de tempo a(n) = n 2 n e b(n) = 49n + 49, respectivamente. Determine que valores de n pertencentes ao conjuntos dos números naturais para os quais A leva menos tempo para executar do que B. (Retirado de [4]) 2. O que significa dizer que f(n) é O(f(n))? (Retirado de [4]) 3. Indique se as afirmativas a seguir são verdadeiras ou falsas e justifique suas respostas. (a) 2 n+1 = O(2 n ) (b) 2 2n = O(2 n ) (c) f(n) = O(u(n)) e g(n) = O(v(n)) f(n) + g(n) = O(u(n) + v(n)) (d) (n + 1) 5 é O(n 5 ) (e) n 3 log n é Ω(n 3 ) (Retirado de [4]) 4. Explique a diferença entre O(1) e O(2)? (Retirado de [4]) 5. Qual algoritmo possui menor complexidade assintótica: um algoritmo que requer n 5 passos ou um algoritmo que requer 2 n passos? (Retirado de [4]) 2
3 6. Resolva as equações de recorrência: (a) T (n) = T (n 1) + c, sendo c constante e n > 1; T(1)=0. (b) T (n) = T (n 1) + 2 n, para n > 1; T(0)=1. (c) T (n) = ct (n 1), sendo c, k constantes e n > 0; T(0)=k. (Retirado de [4]) 7. Escreva um método em Java para obter o maior e o segundo maior elemento de um arranjo de valores int sem usar nenhum laço. Apresente também a análise desse algoritmo (função de complexidade). (Adaptado de [3]) 8. Considere o trecho de programa abaixo: for(i = 0; i < n; i++) for( j = 0; j < m; j++) // trecho de programa cujo custo é O(3) Qual a complexidade assintótica temporal do trecho de programa acima? 9. Considere o trecho de programa abaixo: for(i = 0; i < n; i++) // trecho de programa cujo custo é O(1) for( j = 0; j < m; j++) // trecho de programa cujo custo é O(3) Qual a complexidade assintótica temporal do trecho de programa acima? 3
4 10. Considere o trecho de programa abaixo: for(i=n-1; i > 0 ; i--) for(j=1; j <= i; j++) // trecho de programa cujo custo é O(1) Qual a complexidade assintótica temporal do trecho de programa acima? 11. Bill tem um algoritmo buscaemmatriz para encontrar um elemento x em matriz A n n. O algoritmo faz iterações sobre as linhas de A e usa o algoritmo de busca seqüencial em cada linha até que x seja encontrado ou que todas as linhas tenham sido examinadas. Qual é o tempo de execução de pior caso do algoritmo buscaemmatriz em função de n? O algoritmo é linear O(n)? Justifique. 12. Considere o seguinte problema: Dado um conjunto S de n 2 números reais, determinar o maior e o menor elemento. (a) Implemente um algoritmo (utilizando o paradigma incremental) para esse problema que faz 2n 3 comparações. Qual seria o caso base? Qual seria o passo de indução? Apresente a equação de recorrência desse algoritmo. (b) Implemente um algoritmo (utilizando o paradigma divisão e conquista) para esse problema. Apresente a equação de recorrência desse algoritmo. Prove que o seu algoritmo, quando n é potência de 2, faz 3 2 n 2 comparações. 13. Considere o seguinte problema: Dado um conjunto S de n 1 números reais, determinar a somatória dos elementos desse conjunto. (a) Implemente um algoritmo (utilizando o paradigma incremental) para esse problema. Qual seria o caso base? Qual seria o passo de indução? Apresente a equação de recorrência desse algoritmo. Prove através da resolução de recorrências que esse algoritmo é Θ(n) (b) Implemente um algoritmo (utilizando o paradigma divisão e conquista) para esse problema. Apresente a equação de recorrência desse algoritmo. Prove, utilizando o teorema mestre, que o seu algoritmo é Θ(n) (considere na prova que n é potência de 2). 4
5 14. Considere o seguinte problema: Dado um vetor (array) v de tamanho n, retornar o índice de um elemento x nesse array e -1 caso não esteja presente. (a) Implemente um algoritmo (utilizando o paradigma incremental) para esse problema conhecido como busca seqüencial. Qual seria o caso base? Qual seria o passo de indução? Apresente a equação de recorrência desse algoritmo. Prove através da resolução de recorrências que esse algoritmo é O(n) (b) Implemente dois algoritmos (utilizando o paradigma divisão e conquista) para esse problema: (i) busca binária e (ii) busca ternária. Apresente as equações de recorrência desses dois algoritmos. Prove que assintoticamente os dois algoritmos são equivalentes. Isto é, seja b s (n), a função de complexidade da busca binária e seja b t (n), a função de complexidade da busca ternária, b s (n) = Θ(b t (n)). 15. Um polinômio P n (x) é definido como uma seqüência de números reais a n, a n 1,..., a 1, a 0, e um número real x P n (x) = a n x n + a n 1 x n a 1 x + a 0 (a) Podemos calcular o valor de P n (x) aplicando o seguinte raciocínio matemático (indutivo): para calcular P n (x), basta calcular x n, multiplicar o resultado por a n e somar o resultado com P n 1 (x). P n (x) = a n x n + P n 1 (x) Implemente um método que calcula o valor do polinômio P n (x) segundo o raciocínio acima. Descreva a equação de recorrência desse algoritmo e mostre que ele realiza (n+3)n 2 operações de multiplicação e n operações de adição. (b) Agora considere reescrever P n (x) utilizando a regra de Horner P n (x) = a 0 + x(a 1 + x(a 2 + x(a 3 ) x(a n 1 + xa n )...))) Desta forma, podemos calcular o valor de P n (x) aplicando o seguinte raciocínio indutivo: para calcular P n (x), basta calcular P n 1 (x), multiplicar o resultado por x e somar o resultado com a 0. P n 1(x) = a n x n 1 + a n 1 x n a 2 x + a 1 P n (x) = xp n 1(x) + a 0 Implemente um novo método que utiliza essa abordagem. Usando a notação O, caracterize o tempo de execução (em relação ao número de operações de multiplicação e adição) desse novo algoritmo. (Adaptado de [3]) 5
6 16. Seja S = a 1,..., a n : conjunto de n atividades que podem ser executadas em um mesmo local (Exemplo: palestras em um auditório). Para todo i = 1,..., n, a atividade a i começa no instante s i e termina no instante f i, com 0 s i < f i. Ou seja, supõe-se que a atividade a i será executada no intervalo de tempo (semi-aberto) [s i, f i ). As atividades a i e a j são ditas compatíveis se os intervalos [s i,f i ) e [s j,f j ) são disjuntos. Descreva um algoritmo guloso, de complexidade Θ(n), que encontra em S um subconjunto de atividades mutuamente compatíveis que tenha tamanho máximo. Considere que as atividades estão ordenadas em ordem crescente de tempo de término. Maiores detalhes sobre esse e outros algoritmos gulosos podem ser encontradas em [2]. 17. Considere o seguinte problema: Oito rainhas devem colocadas em um tabuleiro de xadrez, de tal modo que nenhuma delas ataque, ou seja atacada por nenhuma outra. Das regras do xadrez, sabe-se que a rainha pode atacar peças que se encontram na mesma linha, coluna ou diagonal do tabuleiro. Descreva um algoritmo de backtracking para esse problema. Maiores detalhes sobre esse e outros algoritmos de backtracking podem ser encontradas em [5]. Referências [1] Carlos Camarão & Lucília Figueiredo. Programação de Computadores em Java. LTC Editora, Rio de Janeiro, [2] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest & Clifford Stein. Algoritmos - Tradução da 2a. Edição Americana. Editora Campus, 2002 [3] Michael T. Goodrich & Roberto Tamassia. Estrutura de Dados e Algoritmos em Java. Bookman, [4] Nívio Ziviani. Projeto de Algoritmos - com implementação em C e Pascal. Thomson Editora, 2a edição, [5] Niklaus Wirth. Algoritmos e Estrutura de Dados. LTC Editora, Rio de Janeiro,
Complexidade Assintótica
Complexidade Assintótica 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] 08/2008 Material baseado
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: HeapSort
Algoritmos de Ordenação: HeapSort 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
Té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 [email protected] 08/2008
Té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 [email protected] 08/2008
Teoria da Computação. Aula 3 Comportamento Assintótico 5COP096. Aula 3 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP096 Teoria da Computação Aula 3 Prof. Dr. Sylvio Barbon Junior 1 Sumário 1) Exercícios Medida de Tempo de Execução. 2) Comportamento Assintótico de Funções. 3) Exercícios sobre Comportamento Assintótico
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
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: MergeSort
Algoritmos de Ordenação: MergeSort 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 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
Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional
Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional Disciplina: Algoritmos e Estruturas de Dados Professor: Flávio Cardeal Lista de
Hashing. ACH Introdução à Ciência da Computação II. Delano M. Beder
ing 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] 11/2008 Material baseado em slides do professor
Teoria da Computação. Aula 4 Técnicas de Análise 5COP096. Aula 4 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr
5COP096 Teoria da Computação Aula 4 Prof. Dr. Sylvio Barbon Junior 1 Sumário 1) Técnicas de Análise de Algoritmos 2) Paradigmas de Projeto de Algoritmos 1) Indução 2) Recursão 3) Algoritmos Tentativa e
Projeto de algoritmos: Algoritmos Gulosos
Projeto de algoritmos: Algoritmos Gulosos 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] 09/2008
Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica. Prof. Humberto Brandão
Projeto e Análise de Algoritmos Projeto de Algoritmos Programação Dinâmica Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas versão da aula: 0.3 Programação Dinâmica
Análise de Algoritmos
Análise de Algoritmos Parte 3 Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 06 Algoritmos e Estruturas de Dados I Como escolher o algoritmo mais adequado para uma situação? (continuação) Exercício
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira
Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.
SIN5013 Análise de Algoritmos e Estrutura de Dados - 1o Semestre de 2019
SIN5013 Análise de Algoritmos e Estrutura de Dados - 1o Semestre de 2019 Luciano Antonio Digiampietri Escola de Artes, Ciências e Humanidades Programa de Pós-graduação em Sistemas de Informação (PPgSI)
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
Complexidade 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
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á
Solução de Recorrências
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Solução de Recorrências Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ [email protected]
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
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
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 01 Complexidade de Algoritmos Edirlei Soares de Lima O que é um algoritmo? Um conjunto de instruções executáveis para resolver um problema (são
BCC202 - 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
Técnicas de análise de algoritmos
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ [email protected]
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Principais paradigmas do projeto de algoritmos - Recursividade - Tentativa e erro - Divisão e Conquista - Programação dinâmica - Algoritmos Gulosos e de Aproximação
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
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
SCC-201 Introdução à Ciência de Computação II
SCC-201 João Luís Garcia Rosa 1 Ricardo J. G. B. Campello 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br
Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão
Projeto e Análise de Algoritmos NP Completude Prof. Humberto Brandão [email protected] Universidade Federal de Alfenas versão da aula: 0.4 Introdução Problemas intratáveis ou difíceis são comuns
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
1 a Lista Professor: Claudio Fabiano Motta Toledo Estagiário PAE: Jesimar da Silva Arantes
SSC0503 - Introdução à Ciência de Computação II 1 a Lista Professor: Claudio Fabiano Motta Toledo ([email protected]) Estagiário PAE: Jesimar da Silva Arantes ([email protected]) 1. O que significa
Complexidade de algoritmos Notação Big-O
Complexidade de algoritmos Notação Big-O Prof. Byron Leite Prof. Tiago Massoni Engenharia da Computação Poli - UPE Motivação O projeto de algoritmos é influenciado pelo estudo de seus comportamentos Problema
5COP096 TeoriadaComputação
Sylvio 1 Barbon Jr [email protected] 5COP096 TeoriadaComputação Aula 13 Prof. Dr. Sylvio Barbon Junior Sumário - Problemas NP-Completo Algoritmos Não-deterministas; Classes NP-Completo e NP-Dificil; Teorema
É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser
É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser executado 1 Fazendo estimativas e simplificações... O número
Algoritmos 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
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
Análise de Algoritmos Estrutura de Dados II
Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar [email protected]
Complexidade de Algoritmos
Complexidade de Algoritmos Prof. Diego Buchinger [email protected] [email protected] Prof. Cristiano Damiani Vasconcellos [email protected] Funções de Complexidade Considere
SCC-501 Introdução à Ciência de Computação II
SCC-501 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis 2011 João
Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então
Análise de algoritmos. Parte I
Análise de algoritmos Parte I 1 Recursos usados por um algoritmo Uma vez que um procedimento está pronto/disponível, é importante determinar os recursos necessários para sua execução Tempo Memória Qual
QUESTÕES DE PROVAS ANTIGAS
CT-24 QUESTÕES DE PROVAS ANTIGAS ) Preencha a tabela abaixo com Î ou Ï: ω(log n) Θ(n) O(n log n) Ω(n 2 ) o(n ) 6n + 2n 2 + 2.log n + 4n + n.log n + log n 2) Dada a árvore binária abaixo, escreva os seus
Complexidade de Tempo e Espaço
Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando
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:
Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo
Lista de Exercícios 6 Funções
UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 6 Funções Ciências Exatas & Engenharias o Semestre de 06 Conceitos. Determine e justifique se a seguinte afirmação é verdadeira ou não para todas
Divisão e Conquista. Norton T. Roman. Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder
Divisão e Conquista Norton T. Roman Apostila baseada nos trabalhos de Cid de Souza, Cândida da Silva e Delano M. Beder Divisão e Conquista Construção incremental Ex: Consiste em, inicialmente, resolver
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
ALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão
Luiz Leão [email protected] http://www.luizleao.com Conteúdo Programático 2.1 - Definições recursivas 2.2 - Como implementar recursividade 2.3 - Quando não usar recursividade 2.4 - Desenvolvendo algoritmos
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Métodos de busca - seqüêncial - binária Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com Onde Estamos Ementa Revisão: Estrutura de dados;crescimento
Análise de complexidade
Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura
UNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for
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
Análise e Projeto de Algoritmos
Análise e Projeto de Algoritmos Prof. Eduardo Barrére www.ufjf.br/pgcc www.dcc.ufjf.br [email protected] www.barrere.ufjf.br A Disciplina... Lecionada por dois professores: Eduardo Barrére Foco
Aula 06: Análise matemática de algoritmos recursivos
Aula 06: Análise matemática de algoritmos recursivos 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 e da Terra Departamento
Introdução à Ciência da Computação II
Introdução à Ciência da Computação II Análise de Algoritmos: Parte I Prof. Ricardo J. G. B. Campello Este material consiste de adaptações e extensões de slides disponíveis em http://ww3.datastructures.net
CT-234. Estruturas 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 Bibliografia T.H. Cormen, C.E. Leiserson and R.L. Rivest Introduction to algorithms R. Sedgewick
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
Análise de Algoritmos
Análise de Algoritmos Aula 04 Prof. Fernando Freitas Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então O(f) é considerada a complexidade assintótica ou o
Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas
Algoritmos Programação de Computadores Comparando Algoritmos Um algoritmo é um procedimento de passos para cálculos. Este procedimento é composto de instruções que definem uma função Até o momento, vimos
Lista de Exercícios sobre Recursividade
Lista de Exercícios sobre Recursividade 1) Dado os algoritmos recursivos abaixo, apresente suas funções de complexidade de tempo. a) void Pesquisa(int n) if (n > 1) Inspecione n*n*n elementos; // custo
Quantidade de memória necessária
Tempo de processamento Um algoritmo que realiza uma tarefa em 10 horas é melhor que outro que realiza em 10 dias Quantidade de memória necessária Um algoritmo que usa 1MB de memória RAM é melhor que outro
Introdução à Análise Algoritmos
Introdução à Análise Algoritmos Notas de aula da disciplina IME 4-182 Estruturas de Dados I Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) abril/218 Ordenação por SELEÇÃO: Idéia: Dado um vetor
ANÁLISE DE ALGORITMOS: PARTE 3
ANÁLISE DE ALGORITMOS: PARTE 3 Prof. André Backes 2 A notação grande-o é a forma mais conhecida e utilizada de análise Complexidade do nosso algoritmo no pior caso Seja de tempo ou de espaço É o caso mais
Lista de Exercícios 6: Soluções Funções
UFMG/ICEx/DCC DCC Matemática Discreta Lista de Exercícios 6: Soluções Funções Ciências Exatas & Engenharias o Semestre de 06 Conceitos. Determine e justifique se a seguinte afirmação é verdadeira ou não
Modelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos
Relações de recorrência 8. RELAÇÕES DE RECORRÊNCIA Introdução a relações de recorrência Modelagem com relações de recorrência Solução de relações de recorrência Exemplos e aplicações Relações de recorrência
Elementos 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
Comportamento Assintótico. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)
Comportamento Assintótico Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Até Agora Falamos de complexidade de algoritmos com base no número de passos Vamos generalizar
Exercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor
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/
Teoria da Computação Aula 8 Noções de Complexidade
Teoria da Computação Aula 8 Noções de Complexidade Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Motivação: Por que estudar algoritmos? Perguntas: - Por que estudar algoritmos se os computadores
Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo
Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I
Paradigmas Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I OO Simula-67, Smalltalk, C++, Eiffel, Object Pascal,
ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS
1/18 ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS Algoritmos 2/18 Algoritmos Algoritmo - sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador)
Universidade 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
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa Livro Projeto de Algoritmos Nívio Ziviani Capítulo 1 Seção 1.3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Comportamento Assintótico de Funções O parâmetro n
PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Análise de Algoritmos ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GBC052 PERÍODO:
