Construção de Algoritmos II Aula 06

Tamanho: px
Começar a partir da página:

Download "Construção de Algoritmos II Aula 06"

Transcrição

1 exatasfepi.com.br Construção de Algoritmos II Aula 06 André Luís Duarte Porque mil anos são aos teus olhos como o dia de ontem que passou, e como a vigília da noite. Salmos 90:4

2 Recursividade e complexidade Módulos recursivos Introdução à de Algoritmo 2

3 Módulos recursivos Podemos ativar um módulo de forma recursiva Para isso, temos que inserir a ativação do módulo, dentro do próprio módulo usando um critério de parada Isso é chamado de ativação (ou chamada) recursiva 3

4 Módulos recursivos Para que ativação seja correta, devemos pensar em quando a chamada será finalizada Devemos conhecer a função de recursividade Objetivo é resolver um problema mais simples (diminuir o problema) Segue a ideia de dividir para conquistar 4

5 Pensando recursivamente Remover todas as bolinhas de uma caixa com 3 bolinhas 5

6 Pensando recursivamente Remover 1 bolinha e tento resolver outro problema menor Remover todas as bolinhas de uma caixa com 2 bolinhas 6

7 Módulos recursivos Remover 1 bolinha e tento resolver outro problema menor Remover todas as bolinhas de uma caixa com 1 bolinha 7

8 Módulos recursivos Remover 1 bolinha e tento resolver outro problema menor Remover todas as bolinhas de uma caixa vazia (resolvido) 8

9 Módulos recursivos Temos que pensar em dois elementos Generalização Representação genérica da função Caso base Critério de parada 9

10 Módulos recursivos Temos que pensar em dois elementos Generalização Representação genérica da função Caso base Remover todas as bolinhas de uma caixa com n-1 bolinhas Critério de parada Se a caixa estiver vazia pare 10

11 Módulos recursivos Fatorial Generalização 5! = 5 * 4 * 3 * 2 * 1 7! = 7 * 6 * 5 * 4 * 3 * 2 * 1 n! = n * (n 1) * (n 2) * * 1 Caso base 0! = 1 11

12 Módulos recursivos inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim 12

13 Módulos recursivos Pilha inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim fat(4) n 4 * fat(3) Topo 13

14 Módulos recursivos Pilha inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim fat(3) n 3 fat(4) n 4 * fat(2) * fat(3) Topo 14

15 Módulos recursivos Pilha inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim fat(2) n 2 fat(3) n 3 fat(4) n 4 * fat(1) * fat(2) * fat(3) Topo 15

16 Módulos recursivos Pilha inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim fat(1) n 1 fat(2) n 2 fat(3) n 3 fat(4) n 4 * fat(0) * fat(1) * fat(2) * fat(3) Topo 16

17 Módulos recursivos fat(0) Pilha Topo retorna 1 inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim fat(1) n 1 fat(2) n 2 fat(3) n 3 fat(4) n 4 * fat(0) * fat(1) * fat(2) * fat(3) 17

18 Módulos recursivos Pilha inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim fat(1) n 1 fat(2) n 2 fat(3) n 3 fat(4) n 4 * 1 * fat(1) * fat(2) * fat(3) Topo 18

19 Módulos recursivos Pilha inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim fat(2) n 2 fat(3) n 3 fat(4) n 4 * 1 * fat(2) * fat(3) Topo 19

20 Módulos recursivos Pilha inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim fat(3) n 3 fat(4) n 4 * 2 * fat(3) Topo 20

21 Módulos recursivos Pilha inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim fat(4) n 4 * 6 Topo 21

22 Módulos recursivos Pilha inicio módulo fat(inteiro n) se(n = 0)então retorne 1; senão retorne n * fat(n-1); fimmódulo; escreva(fat(4)); fim 22

23 Exercício de fixação Crie um módulo com chamada recursiva que exiba a soma dos 5 primeiros inteiros positivos Ilustre o funcionamento de sua solução mostrando a pilha de execução 23

24 Exercício de fixação Crie um módulo com chamada recursiva que exiba os 10 primeiros pares a partir de um valor fornecido pelo usuário Crie um módulo com chamada recursiva que exiba a soma de todos os números inteiros entre um intervalo definido pelo usuário Crie um módulo com chamada recursiva que exiba os 10 primeiros impares a partir de uma valor fornecido pelo usuário 24

25 Temos visto que um algoritmo é usado para solucionar um problema de forma organizada e bem definida da seguinte forma: Entrada Processamento Saída 25

26 Instância de problema São todas as possibilidades usadas na entrada e que gera uma saída particular <9 7 2> Ordena <2 7 9> < > Ordena < > 26

27 Porque analisar a eficiência de um algoritmo? Calcular um sistema de equações lineares de ordem 3 27

28 Como medir a eficiência? Estudo experimental ou benchmark Implementar o algoritmo Executar com diferentes instâncias de problemas Medir o tempo de execução 28

29 Limitações Necessidade de implementar o algoritmo em uma linguagem Não podemos experimentar todos os cenários possíveis Compilador, SO, hardware, etc, influenciam no tempo de execução 29

30 Maneira ideal Contar o número de operações relevantes ao algoritmo Operações primitivas Operações aritméticas Comparações Leitura Escrita etc 30

31 Modelo de Computação Devemos definir o modelo onde nossa análise será realizada RAM (Random Access Machine) Instruções são executadas sequencialmente (não há concorrência) Apresenta instruções presentes em computadores reais Cada instrução é executada em tempo constante 31

32 Quantas ações são necessárias para calcularmos a média aritmética dos dados armazenados em um vetor

33 Exemplo soma 0; media 0; para i de o até n passo 1 faça soma fimpara; soma + vet[i]; media soma / n; Quantas operações podemos contar? 33

34 Exemplo soma 0; 1 media 0; 1 para i de o até n passo 1 faça n + 1 soma soma + vet[i]; n fimpara; media soma / n; 1 Qual a soma do tempo total? 2 n

35 Não nos interessa o número exato do tempo mas sim na ordem de grandeza 2n + 4 => o n é o elemento principal pois se ele for muito grande as constantes 2 e 4 não influenciam muito na ordem de grandeza Pense no n com 2, 10, 100, de elementos O n é o fator que possui maior influência na ordem de grandeza 35

36 Dizemos no exemplo anterior: T(n) = O(n) Analisando tempo de execução => T(n) é chamada função complexidade de tempo Analisando memória necessária => T(n) é chamada função complexidade de espaço n em O(n) representa o tamanho da entrada 36

37 Exercício: encontrar o maior valor em um vetor [ ] pos 0; maior 1; para i de 2 até 6 passo 1 faça se (v[i] > v[maior])então maior i; fimse; fimpara; 37

38 Exercício: encontrar o maior valor em um vetor [ ] pos 0; 1 maior 1; 1 para i de 2 até 6 passo 1 faça n 1 se (v[i] > v[maior])então n 1 maior i; n 1* fimse; fimpara; 3n 1 * consideramos o pior caso 38

39 Bubblesort vet = [7, 6, 5, 4, 3, 2, 1]; tam 7; para i de tam até 1 passo 1 faça fimpara; para j de 1 até i passo 1 faça if(vet[j] > vet[j+1])então fimse; fimpara; aux = vet[j]; vet[j] vet[j+1]; vet[j+1] aux; 39

40 Bubblesort O(n 2 ) vet = [7, 6, 5, 4, 3, 2, 1]; tam 7; 1 para i de tam até 1 passo 1 faça n para j de 1 até i passo 1 faça n 1, n 2, n 3, n 4, n 5, n 6 se(vet[j] > vet[j+1])então n 1,... fimse; fimpara; aux = vet[j]; n 1,... vet[j] vet[j+1]; n 1,... vet[j+1] aux; n 1,... fimpara; n * 30n = n * n = n 2 40

41 Comparando T(n) = O(n) (linear) n = 100 => T(n) = 100 T(n) = O(n 2 ) (quadrática) n = 100 => T(n) = = Se precisamos decidir qual algoritmo usar, devemos preferir o de menor complexidade 41

42 Pior caso => O É o que devemos nos preocupar Melhor caso => Ω Para efeito de comparação Caso médio => Θ Pode ser muito complexo de ser obtido 42

43 Pior caso (O): valor que não existe no vetor vet = [7, 6, 5, 4, 3, 2, 1]; pos 1; i 1; k = 8; // chave a ser buscada enquanto(i < tam AND pos = 1)faça se (vet[i] = k)então fimse; pos i; i i + 1; fimenquanto; 43

44 Pior caso: valor que não existe no vetor vet = [7, 6, 5, 4, 3, 2, 1]; pos 1; 1 i 1; 1 k = 8; // chave a ser buscada 1 enquanto(i < tam AND pos = 1)faça n + 1 se (vet[i] = k)então fimse; pos i; 1 n i i + 1; n fimenquanto; 3n

45 Pior caso: valor que não existe no vetor vet = [7, 6, 5, 4, 3, 2, 1]; pos 1; i 1; T(n) = O(n) k = 8; // chave a ser buscada enquanto(i < tam AND pos = 1)faça se (vet[i] = k)então fimse; pos i; i i + 1; fimenquanto; 45

46 Melhor caso (Ω): valor está na 1ª posição do vetor vet = [7, 6, 5, 4, 3, 2, 1]; pos 1; i 1; k = 8; // chave a ser buscada enquanto(i < tam AND pos = 1)faça se (vet[i] = k)então fimse; pos i; i i + 1; fimenquanto; 46

47 Melhor caso: valor está na 1ª posição do vetor vet = [7, 6, 5, 4, 3, 2, 1]; pos 1; 1 i 1; 1 k = 7; // chave a ser buscada 1 enquanto(i < tam AND pos = 1)faça 2 se (vet[i] = k)então 1 fimse; pos i; 1 i i + 1; 1 fimenquanto; 8 47

48 Melhor caso: valor está na 1ª posição do vetor vet = [7, 6, 5, 4, 3, 2, 1]; pos 1; i 1; T(n) = Ω(1) k = 8; // chave a ser buscada enquanto(i < tam AND pos = 1)faça se (vet[i] = k)então fimse; pos i; i i + 1; fimenquanto; 48

49 Para facilitar a análise vamos considerar a instrução mais relevante No nosso exemplo o se é a instrução mais relevante pois é ela que controla quantas vezes o laço vai ser executado se não for o pior caso 49

50 Caso médio (Θ): média das execuções vet = [7, 6, 5, 4, 3, 2, 1]; pos 1; i 1; k = 8; // chave a ser buscada enquanto(i < tam AND pos = 1)faça se (vet[i] = k)então // vamos analisar seu o comportamento fimse; pos i; i i + 1; fimenquanto; 50

51 Caso médio: média das execuções vet = [7, 6, 5, 4, 3, 2, 1]; pos 1; i 1; k = 7; // chave a ser buscada enquanto(i < tam AND pos = 1)faça se (vet[i] = k)então ( n 1 + n) fimse; pos i; i i + 1; fimenquanto; 51

52 Temos que: n n 1+n= i=1 i Podemos dizer que: n i=1 i n 2 (n+1) n (n+1) 2 Logo, média = n (n+1) 2 n (n+1) 2 n 52

53 Caso médio: média das execuções vet = [7, 6, 5, 4, 3, 2, 1]; pos 1; i 1; T(n) = Θ(n) k = 8; // chave a ser buscada enquanto(i < tam AND pos = 1)faça se (vet[i] = k)então fimse; pos i; i i + 1; fimenquanto; 53

54 Para entradas pequenas, a escolha do algoritmo não importa tanto 54

55 A medida que a quantidade de entradas aumenta, a escolha fica mais seletiva 55

56 Comportamento assintótico Comportamento da função para valores muito grande - <= n <= + 56

57 Note que o comportamento do crescimento não é influenciado pelas constantes Logo, podemos desconsiderá-las 57

58 Analisando o comportamento das curvas para valores pequenos qual escolher? 58

59 Analisando o comportamento das curvas para valores grandes (assintótico) qual escolher? 59

60 Devemos desconsiderar as constantes no crescimento da função somente para valores muito grandes 60

61 Dizemos que existe um valor de tamanho de entrada chamado n 0 que a partir dele o algoritmo é pior do que outros 61

62 5n => n0 = 1, 5n 2 => n 0 = 2, 2 n => n 0 = 9 62

63 Exemplo de gráficos das notações de complexidade 63

64 À direita de n0 o valor de f(n) sempre está entre c 1 g(n) e c 2 g(n) inclusive 64

65 À direita de n0 o valor de f(n) sempre está em ou abaixo de cg(n) 65

66 À direita de n0 o valor de f(n) sempre está em ou acima de cg(n) 66

67 67

Teoria da Computação Aula 9 Noções de Complexidade

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

Leia mais

COMPLEXIDADE DE ALGORITMOS

COMPLEXIDADE DE ALGORITMOS COMPLEXIDADE DE ALGORITMOS Algoritmos Seqüência de instruções necessárias para a resolução de um problema bem formulado Permite implementação computacional COMPLEXIDADE DE ALGORITMOS Um algoritmo resolve

Leia mais

Projeto e Análise de Algoritmos

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

Leia mais

Técnicas de Projeto de Algoritmos

Técnicas de Projeto de Algoritmos UNIVERSIDADE NOVE DE JULHO - UNINOVE Pesquisa e Ordenação Técnicas de Projeto de Algoritmos Material disponível para download em: www.profvaniacristina.com Profa. Vânia Cristina de Souza Pereira 03 _ Material

Leia mais

exatasfepi.com.br CAII Modularização André Luís Duarte "E quem não toma a sua cruz, e não segue após mim, não é digno de mim.

exatasfepi.com.br CAII Modularização André Luís Duarte E quem não toma a sua cruz, e não segue após mim, não é digno de mim. exatasfepi.com.br CAII Modularização André Luís Duarte "E quem não toma a sua cruz, e não segue após mim, não é digno de mim." Mateus 10:38 Modularizando Algoritmos Decomposição de problemas Módulos ou

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 06 Notação O humberto@bcc.unifal-mg.edu.br Tempo de execução (ms) Última aula teórica Análise experimental 45 40 35 30 25 20 15 10 5

Leia mais

Preliminares. Profa. Sheila Morais de Almeida. agosto

Preliminares. Profa. Sheila Morais de Almeida. agosto Preliminares Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2016 Algoritmos Definição - Skiena Algoritmo é a ideia por trás dos programas de computador. É aquilo que permanece igual se o programa

Leia mais

Aula 1. Teoria da Computação III

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

Leia mais

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE ESTRUTURA DE DADOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia

Leia mais

Análise de Algoritmos Estrutura de Dados II

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 marcelo.aguiar@ufes.br

Leia mais

Projeto e Análise de Algoritmos

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

Leia mais

COMPLEXIDADE DE ALGORITMOS COMPLEXIDADE DE ALGORITMOS

COMPLEXIDADE DE ALGORITMOS COMPLEXIDADE DE ALGORITMOS COMPLEXIDADE DE ALGORITMOS Algoritmos Seqüência de instruções necessárias para a resolução de um prolema em formulado Permite implementação computacional COMPLEXIDADE DE ALGORITMOS Um algoritmo resolve

Leia mais

Estruturas de Dados Algoritmos

Estruturas de Dados Algoritmos Estruturas de Dados Algoritmos Prof. Eduardo Alchieri Algoritmos (definição) Sequência finita de instruções para executar uma tarefa Bem definidas e não ambíguas Executáveis com uma quantidade de esforço

Leia mais

Complexidade de algoritmos Notação Big-O

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

Leia mais

CAI Fluxograma Revisão 7

CAI Fluxograma Revisão 7 exatasfepi.com.br CAI Fluxograma Revisão 7 André Luís Duarte O coração do entendido adquire o conhecimento, e o ouvido dos sábios busca a sabedoria. Pv 18:15 Fluxograma Introdução Formas básicas Estrutura

Leia mais

Complexidade de Tempo e Espaço

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

Leia mais

Análise de Algoritmos Parte 4

Análise de Algoritmos Parte 4 Análise de Algoritmos Parte 4 Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 07 Algoritmos e Estruturas de Dados I Como escolher o algoritmo mais adequado para uma situação? (continuação)

Leia mais

ANÁLISE DE ALGORITMOS: PARTE 3

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

Leia mais

Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (

Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo ( Análise de Problemas Recursivos Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Lembrando de Recursividade Procedimento que chama a si mesmo Recursividade permite

Leia mais

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO Baseado nos slides de autoria de Rosely Sanches Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURAS CONDICIONAIS Estrutura Condicional Simples Estrutura

Leia mais

Análise de algoritmos. Parte I

Análise de algoritmos. Parte I Análise de algoritmos Parte I 1 Procedimento X Algoritmo Procedimento: sequência finita de instruções, que são operações claramente descritas, e que podem ser executadas mecanicamente, em tempo finito.

Leia mais

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

MC102 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 mais

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

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

Leia mais

Elementos de Análise Assintótica

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

Leia mais

Recursividade Alguns problemas são definidos com base nos mesmos, ou seja, podem ser descritos por instâncias do próprio problema.

Recursividade Alguns problemas são definidos com base nos mesmos, ou seja, podem ser descritos por instâncias do próprio problema. Recursividade Alguns problemas são definidos com base nos mesmos, ou seja, podem ser descritos por instâncias do próprio problema. Para tratar estas classes de problemas, utilizase o conceito de recursividade.

Leia mais

Introdução a Algoritmos Parte 08

Introdução a Algoritmos Parte 08 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 08 (Baseado no Material do Prof. Marcelo Linder) Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br

Leia mais

Comportamento assintótico

Comportamento assintótico ANÁLISE DE ALGORITMOS: PARTE 2 Prof. André Backes 2 Na última aula, vimos que o custo para o algoritmo abaixo é dado pela função f(n) = 4n + 3 1 3 Essa é a função de complexidade de tempo Nos dá uma ideia

Leia mais

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO. Teoria de Algoritmos: Complexidade

GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO. Teoria de Algoritmos: Complexidade GBC015: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO Teoria de Algoritmos: Complexidade Ilmério Reis da Silva ilmerio@ufu.br www.facom.ufu.br/~ilmerio/icc UFU/FACOM/BCC Introdução Antes de executar um programa é

Leia mais

Breve Introdução à Complexidade Assintótica de Algoritmos Letícia Rodrigues Bueno

Breve Introdução à Complexidade Assintótica de Algoritmos Letícia Rodrigues Bueno Breve Introdução à Complexidade Assintótica de Algoritmos Letícia Rodrigues Bueno Introdução Objetivo: possibilitar medir eficiência de algoritmos; Introdução Objetivo: possibilitar medir eficiência de

Leia mais

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 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

Leia mais

ALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 ANÁLISE DE ALGORITMOS. Armanda Rodrigues 3 de Outubro 2011

ALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 ANÁLISE DE ALGORITMOS. Armanda Rodrigues 3 de Outubro 2011 ALGORITMOS E ESTRUTURAS DE DADOS 2011/2012 ANÁLISE DE ALGORITMOS Armanda Rodrigues 3 de Outubro 2011 2 Análise de Algoritmos Temos até agora analisado soluções de problemas de forma intuitiva A análise

Leia mais

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

BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade BC1424 Algoritmos e Estruturas de Dados I Aula 05 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco 1Q-2016 1 1995 2015 2 Custo de um algoritmo e funções de complexidade Introdução

Leia mais

Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas

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

Leia mais

André Vignatti DINF- UFPR

André Vignatti DINF- UFPR Notação Assintótica: O André Vignatti DINF- UFPR Notação Assintótica Vamos expressar complexidade através de funções em variáveis que descrevam o tamanho de instâncias do problema. Exemplos: Problemas

Leia mais

Análise de algoritmos

Análise de algoritmos Análise de algoritmos SCE-181 Introdução à Ciência da Computação II Alneu Lopes Thiago A. S. Pardo 1 Algoritmo Noção geral: conjunto de instruções que devem ser seguidas para solucionar um determinado

Leia mais

Introdução à Análise Algoritmos

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

Leia mais

Quantidade de memória necessária

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

Leia mais

Recursividade. Prof. Jesus José de Oliveira Neto

Recursividade. Prof. Jesus José de Oliveira Neto Recursividade Prof. Jesus José de Oliveira Neto Algoritmos podem ser definidos de duas formas: Forma iterativa ou não recursiva: utiliza laços de repetição (while, for, do/while) Forma recursiva: métodos

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Mestrado em Ciência da Computação Prof. Dr. Aparecido Nilceu Marana Faculdade de Ciências I think the design of efficient algorithms is somehow the core of computer science.

Leia mais

PC Fluxograma Revisão 8

PC Fluxograma Revisão 8 exatasfepi.com.br PC Fluxograma Revisão 8 André Luís Duarte O coração do entendido adquire o conhecimento, e o ouvido dos sábios busca a sabedoria. Pv 18:15 Fluxograma Introdução Formas básicas Estrutura

Leia mais

Computação I: Representações de Algoritmos

Computação I: Representações de Algoritmos Computação I: Representações de Algoritmos reginaldo.re@utfpr.edu.br * Parte da apresentação foi gentilmente cedida pelo prof. Igor Steinmacher Agenda Objetivos Relembrando... Algoritmos para desenvolver

Leia mais

Exercícios Aula Prática VII

Exercícios Aula Prática VII Exercícios Aula Prática VII Estruturas de dados homogêneas 99 As estruturas de dados homogêneas que estudaremos são os vetores também conhecidos com arranjos. Vetores nada mais são que matrizes. Matriz

Leia mais

É 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 É 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

Leia mais

Introdução à Ciência da Computação II

Introdução à Ciência da Computação II Introdução à Ciência da Computação II 2semestre/200 Prof Alneu de Andrade Lopes Apresentação com material gentilmente cedido pelas profas Renata Pontin Mattos Fortes http://wwwicmcuspbr/~renata e Graça

Leia mais

Teoria da computabilidade Indecidíveis Decidíveis

Teoria da computabilidade Indecidíveis Decidíveis Bacharelado em Ciência da Computação Disciplina: Algoritmos e Estruturas de Dados I Professor: Mário Luiz Rodrigues Oliveira Teoria da computabilidade Indecidíveis Decidíveis Teoria da complexidade Intratáveis:

Leia mais

1 a Lista Professor: Claudio Fabiano Motta Toledo Estagiário PAE: Jesimar da Silva Arantes

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 (claudio@icmc.usp.br) Estagiário PAE: Jesimar da Silva Arantes (jesimar.arantes@usp.br) 1. O que significa

Leia mais

Teoria 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. 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 mais

Análise de algoritmos

Análise de algoritmos Análise de algoritmos Introdução à Ciência da Computação 2 Baseado nos slides do Prof. Thiago A. S. Pardo Algoritmo Noção geral: conjunto de instruções que devem ser seguidas para solucionar um determinado

Leia mais

ANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa

ANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa ANÁLISE DE ALGORITMOS: PARTE 1 Prof. André Backes Algoritmos 2 Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa Precisamos escrever o seu algoritmo Um algoritmo

Leia mais

Análise de algoritmos. Parte I

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

Leia mais

2. Complexidade de Algoritmos

2. Complexidade de Algoritmos Introdução à Computação II 5952011 2. Complexidade de Algoritmos Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2.1. Introdução 2.1.1. Revisão de Pseudo-Código 2.1.2.

Leia mais

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

Busca em Memória Primária Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II Estrutura de Dados II COM10078 2017-I Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

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

Busca em Memória Primária Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Busca em Memória Primária Estrutura de Dados II COM10078 Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos 60 Desempenho 50 40 30 20 Algoritmo1 Algoritmo2 Algoritmo3 10 0 Complexidade de Algoritmos INFORMÁTICA BÁSICA Prof. Demétrios Coutinho C a m p u s P a u d o s F e r r o s D i s c i p l i n a d e A l g

Leia mais

Complexidade de Algoritmos

Complexidade de Algoritmos Complexidade de Algoritmos O que é um algoritmo? Sequência bem definida e finita de cálculos que, para um dado valor de entrada, retorna uma saída desejada/esperada. Na computação: Uma descrição de como

Leia mais

ESTRUTURAS DE REPETIÇÃO - PARTE 1

ESTRUTURAS DE REPETIÇÃO - PARTE 1 AULA 15 ESTRUTURAS DE REPETIÇÃO - PARTE 1 15.1 O comando enquanto-faca- Considere o problema de escrever um algoritmo para ler um número inteiro positivo, n, e escrever todos os números inteiros de 1 a

Leia mais

Técnicas de Programação III Análise de Algoritmos (Continuação)

Técnicas de Programação III Análise de Algoritmos (Continuação) Técnicas de Programação III Análise de Algoritmos (Continuação) Aula ministrada em: 23/08/2007 Prof. Mauro L. C. Silva 1/10 Objetivos da Aula Entender a Análise e a Complexidade de Algoritmos 2/10 Avaliação

Leia mais

Complexidade Assintótica de Programas Letícia Rodrigues Bueno

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

Leia mais

Informática Portugol IDE Revisão 1

Informática Portugol IDE Revisão 1 exatasfepi.com.br Informática Portugol IDE Revisão 1 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef

Leia mais

Comportamento Assintótico. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)

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

Leia mais

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 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

Leia mais

Introdução a Algoritmos Parte 06

Introdução a Algoritmos Parte 06 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 06 (Baseado no Material do Prof. Marcelo Linder) Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br

Leia mais

ALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão

ALGORITMOS AVANÇADOS UNIDADE II Recursividade. Luiz Leão Luiz Leão luizleao@gmail.com 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

Leia mais

Teoria da Computação Aula 8 Noções de Complexidade

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

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Introdução Apresentação Professor Professor Ariel Dias Apresentação Disciplina O que veremos? www.arieldias.com BlackBoard Apresentação

Leia mais

CCO 016 Fundamentos de Programação

CCO 016 Fundamentos de Programação CCO 016 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 09 Agregados Homogêneos Variáveis Indexadas Vetores EXEMPLO 1 Um programa deve calcular quem

Leia mais

BCC202 - Estrutura de Dados I

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

Leia mais

Análise de algoritmos

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

Leia mais

Análise de Complexidade de Algoritmos. mario alexandre gazziro

Análise de Complexidade de Algoritmos. mario alexandre gazziro Análise de Complexidade de Algoritmos mario alexandre gazziro Definição A complexidade de um algoritmo consiste na quantidade de esforço computacional necessária para sua execução. Esse esforço é expresso

Leia mais

ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO

ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO ESTRUTURAS DE DADOS E ALGORITMOS APRESENTAÇÃO DO CURSO E INTRODUÇÃO Adalberto Cajueiro (adalberto@computacao.ufcg.edu.br) Departamento de Sistemas e Computação Universidade Federal de Campina Grande 1

Leia mais

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 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

Leia mais

Teoria da Computação. Aula 3 Comportamento Assintótico 5COP096. Aula 3 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

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

Leia mais

ESTRUTURAS DE CONTROLE

ESTRUTURAS DE CONTROLE ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURAS CONDICIONAIS Estrutura Condicional Simples Estrutura Condicional Composta Seleção entre duas ou mais

Leia mais

André Vignatti DINF- UFPR

André Vignatti DINF- UFPR Notação Assintótica: Ω, Θ André Vignatti DINF- UFPR Limitantes Inferiores Considere o seguinte trecho de código: void main () { /* trecho que le N da entrada padrao */ for (i = 0 ; i< N; i++) puzzle(i);

Leia mais

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

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 CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma

Leia mais

PCC104 - Projeto e Análise de Algoritmos

PCC104 - Projeto e Análise de Algoritmos PCC104 - Projeto e Análise de Algoritmos Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 16 de agosto de 2018 Marco Antonio

Leia mais

AEDI Introdução Revisão 2

AEDI Introdução Revisão 2 exatasfepi.com.br AEDI Introdução Revisão 2 André Luís Duarte...mas os que esperam no Senhor renovarão as suas forças; subirão com asas como águias; correrão, e não se cansarão; andarão, e não se fatigarão.is

Leia mais

LINGUAGEM DE PROGRAMAÇÃO

LINGUAGEM DE PROGRAMAÇÃO Técnico em Informática LINGUAGEM DE PROGRAMAÇÃO Profª Ana Paula anapaula_mandelli@hotmail.com Estruturas de Repetição Em muitos casos, o algoritmo solução para uma determinada classe de problemas, apresenta

Leia mais

CURSO DE ESTRUTURA DE DADOS MÓDULO: ALGORITMOS DE ORDENAÇÃO E PESQUISA PROFESSORA: DANIELA ELOISE FLÔR COLABORADORA: MARIA CAROLINA SILA VANUCHI

CURSO DE ESTRUTURA DE DADOS MÓDULO: ALGORITMOS DE ORDENAÇÃO E PESQUISA PROFESSORA: DANIELA ELOISE FLÔR COLABORADORA: MARIA CAROLINA SILA VANUCHI CURSO DE ESTRUTURA DE DADOS MÓDULO: ALGORITMOS DE ORDENAÇÃO E PESQUISA PROFESSORA: DANIELA ELOISE FLÔR COLABORADORA: MARIA CAROLINA SILA VANUCHI O QUE SÃO ALGORITMOS DE ORDENAÇÃO? São algoritmos que organizam

Leia mais

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info Observações O conteúdo dessa aula é parcialmente proveniente do Capítulo 11 do livro Fundamentals of

Leia mais

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

Este conceito é bastante simples e será útil e conveniente nos itens seguintes, na definição das estruturas básicas de controle de execução. Capítulo 7 Controle de Fluxo de Execução Até o momento os algoritmos estudados utilizam apenas instruções primitivas de atribuição, e de entrada e saída de dados. Qualquer conjunto de dados fornecido a

Leia mais

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

Módulo 7. Complexidade de Algoritmos. Algoritmos e Estruturas de Dados II C++ Rone Ilídio Módulo 7 Complexidade de Algoritmos Algoritmos e Estruturas de Dados II C++ Rone Ilídio Tempo de execução de um programa Qual algoritm executará mais rápido? int main(){ SYSTEMTIME inicio,fim; GetSystemTime(&inicio);

Leia mais

3. ANÁLISE DE COMPLEXIDADE PESSIMISTA

3. ANÁLISE DE COMPLEXIDADE PESSIMISTA 3. ANÁLISE DE COMPLEXIDADE PESSIMISTA Este capítulo introduz uma metodologia para analisar a complexidade pessimista (i. e. no pior caso) de um algoritmo com base em sua estrutura. O processo de construção

Leia mais

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 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

Leia mais

Algoritmos. Prof. Jonatas Bastos Site:

Algoritmos. Prof. Jonatas Bastos   Site: Algoritmos Prof Jonatas Bastos Email: jonatasfbastos@gmailcom Site: http://jonatasfbastoswordpresscom/ 1 Estrutura de Repetição Computadores não reclamam por executar alguma tarefa, nem se cansam em fazer

Leia mais

Algoritmos de Ordenação

Algoritmos de Ordenação Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca

Leia mais

Modularização. Prof. Antonio Almeida de Barros Junior

Modularização. Prof. Antonio Almeida de Barros Junior Modularização Prof. Antonio Almeida de Barros Junior 1 Modularização A modularização consiste em decompor um programa em uma série de subprogramas individuais; Trata-se de um método utilizado para facilitar

Leia mais

Pra início de conversa... O que é um algoritmo? Exemplos de algoritmos. Como podemos descrever algoritmos? Como podemos descrever algoritmos?

Pra início de conversa... O que é um algoritmo? Exemplos de algoritmos. Como podemos descrever algoritmos? Como podemos descrever algoritmos? Pra início de conversa... O que é um algoritmo? Como podemos descrever algoritmos? avaliar algoritmos? Introdução à Análise de Algoritmos Prof. Cláudio E. C. Campelo http://claudiocampelo.com Derivado

Leia mais

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão

ALGORITMOS AVANÇADOS UNIDADE I Análise de Algoritmo - Notação O. Luiz Leão Luiz Leão luizleao@gmail.com http://www.luizleao.com Conteúdo Programático 1.1 - Algoritmo 1.2 - Estrutura de Dados 1.2.1 - Revisão de Programas em C++ envolvendo Vetores, Matrizes, Ponteiros, Registros

Leia mais

Capítulo 6 Análise de Algoritmos Capítulo 6

Capítulo 6 Análise de Algoritmos Capítulo 6 666 Apêndice C Respostas e Sugestões para os Exercícios de Revisão 42. Consulte a Seção 5.4. 43. (a) Escoamento de memória.(b) Porque não há garantia que o cliente irá usá-la devidamente. 44. (a) Contagem

Leia mais

Análise e Complexidade de Algoritmos

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

Leia mais

Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( )

Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista ( ) Projeto e Análise de Algoritmos Aula 4: Dividir para Conquistar ou Divisão e Conquista (2.1-2.2) DECOM/UFOP 2013/1 5º. Período Anderson Almeida Ferreira Adaptado do material desenvolvido por Andréa Iabrudi

Leia mais

Algoritmos e Estruturas de Dados I Aula 06 Custos de um algoritmo

Algoritmos e Estruturas de Dados I Aula 06 Custos de um algoritmo Algoritmos e Estruturas de Dados I Aula 06 Custos de um algoritmo Prof. Jesús P. Mena-Chalco 1Q-2019 1 lista 3 7-2 6 NULL Node *Busca(int x, Node *lista) { while (lista!=null && lista->data!=x) lista =

Leia mais

CES-11. Noções de complexidade de algoritmos. Complexidade de algoritmos. Avaliação do tempo de execução. Razão de crescimento desse tempo.

CES-11. Noções de complexidade de algoritmos. Complexidade de algoritmos. Avaliação do tempo de execução. Razão de crescimento desse tempo. CES-11 Noções de complexidade de algoritmos Complexidade de algoritmos Avaliação do tempo de execução Razão de crescimento desse tempo Notação O Exercícios COMPLEXIDADE DE ALGORITMOS Importância de análise

Leia mais

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 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

Leia mais

Projeto e Análise de Algoritmos

Projeto e Análise de Algoritmos Projeto e Análise de Algoritmos Conceitos básicos Metodo de provas: Indução Diane Castonguay diane@inf.ufg.br Instituto de Informática Universidade Federal de Goiás Notações = para todo = existe! = único

Leia mais

7. Introdução à Complexidade de Algoritmos

7. Introdução à Complexidade de Algoritmos 7. Introdução à Complexidade de Algoritmos Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 7. Introdução à Complexidade de Algoritmos Estruturas de Dados 1 / 1 Análise de Algoritmos

Leia mais

Fig.1: Ilustração de Estrutura de Controle Fonte:Internet

Fig.1: Ilustração de Estrutura de Controle Fonte:Internet 4. Estrutura de Controle Os algoritmos são criados para solucionar problemas propostos utilizando conceitos de bloco lógico, entrada e saída de dados, constantes, variáveis, expressões lógicas, atribuições

Leia mais

Medida do Tempo de Execução de um Programa

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

Leia mais