icc2 aula 7 fábio nakano. crescimento de funções

20
ICC2 Aula 7 Fábio Nakano

Upload: internet

Post on 18-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

ICC2 Aula 7

Fábio Nakano

Page 2: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Crescimento de funções

Page 3: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Tempo de execução

Page 4: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Impacto da melhoria do hardware

Page 5: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

O que tem essas funções com o tempo de execução?

Page 6: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Comparando taxas de crescimento

Page 7: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Algoritmos, operações e complexidade

• Quanto tempo leva uma atribuição?• Quanto tempo leva uma comparação?

Page 8: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Acesso sequencial/Busca linear

Page 9: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Qual é a função dominante?

Page 10: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

polinomiais

• Bubble sort é n^2• O caso médio do simplex (LP) é n^3

• Qual é o termo dominante da função:

• f(n)=n^5+200*n^4+5000n^3+20000n^2 ??

Page 11: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Busca binária

Page 12: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Mergesort/heapsort/quicksort

• n*log(n)

• Como compara com o bubblesort?

Page 13: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Problema da mochila• Vamos viajar mas cada um só pode levar uma mala

com o que couber.

• Como tudo é igualmente necessário, queremos maximizar o número de itens.

• Tem que verificar todas as combinações possíveis... Quantas são?

• Idéia do conjunto das partes (necessário para MD e ITC)

Page 14: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Combinações de algoritmos e combinações de funções

• Buscar num vetor desordenado– Busca linear– Ordenar e buscar

• Ordenações por diversos parâmetros• E se tiver vários parâmetros?– Busca direta– Ordena a cada vez que busca– Array de índices

Page 15: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Exercitemos... Qual cresce mais rápido, se uma “descola” da outra e se

somarmos uma a outra e se multiplicarmos?• Constantes

• Logs• Linear• Polinomial• Misto log-pol• Exponencial• (escolher funcoes e fazer na classe)

Page 16: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Podemos agrupar as funções em conjuntos?

Page 17: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Notação assintótica e propriedades

• Aula 4 do Delano• (fazer a conexão entre os exemplos e as

propriedades)

Page 18: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Definições, teoremas e algoritmos

• Definição é uma especificação precisa de um objeto.

• Um teorema é uma especificação precisa de um procedimento (que geralmente constrói um objeto a partir do outro para provar que uma afirmação é verdadeira)

• Um algoritmo é uma especificação precisa de um procedimento.

Page 19: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Exemplos

• Definição: n!=n*(n-1)!• Construa um método que calcula n!• Construa um método que calcula a soma dos n

primeiros inteiros• Teorema 1: A soma dos n primeiros inteiros é

n(n+1)/2• Construa um método que calcula a soma dos n

primeiros inteiros usando o Teorema 1• Compare as complexidades.

Page 20: ICC2 Aula 7 Fábio Nakano. Crescimento de funções

Indução matemática

• Prove por indução que n^2>2n+1 para n>2• Prove por indução que 2^n > n^2

• Base• Hipótese• Passo