Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula Da Unifei
Aula Da Unifei
Aula 1
Al-Khwarizmi → Algoritmo!
O que são algoritmos?
Sequência de instruções ordenadas de forma lógica para a solução
de um determinado problema ou realização de alguma tarefa bem
especificada.
• Precisos, não ambíguos, mecânicos, eficientes, corretos.
• Receita de bolo, manual passo a passo.
5000
4000
3000
Cramer
2000
1000
Gauss
0
1 2 3 4 5 6 7
• Exemplo: Sequência de Fibonacci
O matemático italiano do século XV Leonardo Fibonacci é
amplamente conhecido por sua sequência de números:
Onde:
F(n-1) + F(n-2), se n > 1
F(n) = 1, se n = 1
0, se n = 0
• Exemplo: Sequência de Fibonacci
Como implementar o código para o cálculo do enésimo
número da sequência de Fibonacci?
1) Implementação intuitiva: Recursiva
8 5 3 1 2
5 8 3 1 2
3 5 8 1 2
• Exemplos:
– Comparações, operações aritméticas, visita a nó de um
grafo (mudando valor de flag), etc.
Notação Assintótica
Digamos que a contagem do número de execuções da
operação fundamental do algoritmo em função do tamanho
n da entrada tenha chegado a uma expressão do tipo:
3n² + 4n + 8.
1
5
9
13
17
21
25
29
33
37
41
45
49
53
57
61
65
69
73
77
81
85
89
93
97
101
105
109
113
117
121
125
129
133
137
141
145
149
Notação Assintótica
Notação Θ (Theta)
– Se f(n) = 2n² e g(n) = 3n² + n + 7, as duas funções
crescem com ordens equivalentes e dizemos que
f(n) = Θ(g(n))
– Define um limite assintótico exato.
– Analogia: Função g(n) é “igual” a f(n).
Funções que são Θ umas da outras possuem o mesmo
comportamento assintótico (crescem de maneira
semelhante com o tamanho da entrada).
Podemos separá-las em classes de comportamento:
– Linear Θ(n);
– quadrática Θ (n²);
– logarítmica Θ(log2n);
– exponencial Θ(2n), etc.
Θ é um caso particular de O e Ω.
– Se f(n) = O(g(n)) e f(n) = Ω(g(n)), então f(n) = Θ(g(n)).
Matematicamente podemos dizer que para
f(n) = Θ(g(n)), devem existir constantes c1, c2 e
n0 tal que: