SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Tutoria AEDSI
Pablo Silva
Recordar
é viver
• Definição de algoritmo
• Definição de tipo de dado
• Definição de TAD
• Análise de algoritmos
Hoje
• Análise da complexidade de
algoritmos
• Resolver exercícios
Mas antes...
Uma definição mais simples do que é tipo de dado
(pra responder na prova se cair!!!):
• Em linguagens de programação o tipo de dado de uma variável,
constante ou função define o conjunto de valores que a variável,
constante ou função pode assumir.
• Ex.: variável boolean pode assumir valores true ou false.
Portanto true e false é o conjunto de valores de uma variável
booleana.
Por que analisar um algoritmo?
Depois que decidimos qual o problema que
queremos resolver (Ex. encontrar um elemento
num conjunto de valores), precisamos ter certeza
que o algoritmo escolhido para o nosso problema,
irá resolvê-lo em um espaço de tempo e consumir
memória, num intervalo de tempo e quantidade
de memória gastas aceitáveis para nosso cliente.
Por que analisar um algoritmo?
Nenhum cliente vai querer um programa que
demora 10 minutos para encontrar um elemento
dentro de um conjunto de valores!
Isso é perda de dinheiro e tempo, uma vez que
deve existir um algoritmo que faça isso em poucos
milissegundos!
Por que analisar um algoritmo?
No final, o que vai importar na análise é qual o
caso médio que tal algoritmo demora para nos dar
a saída do problema!
Passos para analisar um algoritmo
e decidir os três casos
1. Entenda o problema: sem entender o
problema é praticamente impossível
determinar os três casos corretamente.
Entendendo o problema
Se temos o problema de encontrar um elemento num conjunto
de valores, entender o problema significa:
Talvez o elemento procurado esteja na primeira posição
buscada, ou talvez esteja na última. Mas ele pode também
estar no meio ou próximo de lá.
Dessa maneira já sabemos qual os nossos melhor caso, pior
caso e caso médio respectivamente. Agora só precisamos
encontrar uma maneira de representa-los matematicamente.
Passos para analisar um algoritmo
e decidir os três casos
2. Encontre no algoritmo loops e estruturas
condicionais. ESQUEÇA O RESTO!
Encontre loops e condicionais
Encontre loops e condicionais
Passos para analisar um algoritmo
e decidir os três casos
3. Decida quantas vezes o condicional irá executar
baseado na quantidade de vezes que o loop
executa.
*É preciso olhar para o condicional, pois o custo de
acesso a memória vem dele!
Encontre loops e condicionais
Se tamanho = n, então o for
executará n vezes, uma vez
que vai de 0 até (n – 1).
Para visualizar o número de
vezes que o for executa,
pode-se fazer o seguinte:
Por exemplo, se n = 2, i
começa em 0 (i = 0) e 0 < 2.
Na segunda iteração, i recebe
1 (i = 1) e 1 < 2. A terceira
iteração nos dá que i será
igual a 2 (i = 2) e 2 < 2 é falso
e o loop não será executado
novamente.Logo, o loop executou somente 2 vezes, uma vez que a terceira
iteração não foi executada. Veja que 2 é o número de elementos que
temos, pois n = 2 e então o loop rodou n vezes.
Passos para analisar um algoritmo
e decidir os três casos
3. Seja f(n) uma função de complexidade, decida
f(n) para o melhor e pior caso e caso médio,
utilizando seu conhecimento sobre o problema.
Decida quantas vezes será executado
Melhor caso: 𝑓 𝑛 = 1
O if foi acessado somente
uma vez, pois o elemento
estava na primeira posição
acessada.
Pior caso: 𝑓 𝑛 = 𝑛
O if foi acessado todas as
vezes que o loop executou,
pois o elemento procurado
estava na última posição
acessada ou não estava no
vetor.
Seja 𝑓 𝑛 uma função de complexidade definida pelo número de elementos consultados no arquivo.
Decida quantas vezes será executado
Caso médio: 𝑓 𝑛 =
𝑛+1
2
O caso médio é dado por:
𝑃𝑖𝑜𝑟 𝑐𝑎𝑠𝑜 + 𝑀𝑒𝑙ℎ𝑜𝑟 𝑐𝑎𝑠𝑜
2
É o mesmo que dizer que o
elemento está no meio ou
próximo dele!
Seja 𝑓 𝑛 uma função de complexidade definida pelo número de elementos consultados no arquivo.
Análise assintótica
Para a análise de algoritmos só vai importar
mesmo, quando temos valores enormes de n. Isso
é necessário, porque até mesmo o pior dos
algoritmos pode resolver algum problema quando
n é suficientemente pequeno.
Análise assintótica
O tipo de matemática que está interessado em
valores enormes de n, é chamado de assintótico, e
as funções aqui definidas serão classificadas em
“ordens” (como as ordens religiosas da Idade
Média), onde todas as funções de uma mesma
ordem são equivalentes.
Análise assintótica
Por exemplo, sejam as funções:
n2 , (3/2)n2 , 9999n2 , n2/1000 , n2+100n , etc.
Elas crescem todas na mesma velocidade e
portanto são todas “equivalentes” e desse modo
de mesma “ordem”.
Análise assintótica
Por exemplo, sejam as funções:
n2 , (3/2)n2 , 9999n2 , n2/1000 , n2+100n , etc.
Nesse caso é fácil de perceber que todas crescem
na mesma velocidade. Todas as funções dadas são
quadráticas. Olhem para os gráficos á seguir:
Análise assintótica
As proporções são diferentes, mas as curvas tem o
mesmo comportamento! (comportamento é o
mesmo que dizer crescimento)
Aqui, vamos nos concentrar na primeira ordem, a
Ordem O.
Dominação assintótica
Se pudermos provar que f(n)
domina assintoticamente g(n) a
partir de um ponto m quando n->
infinito, então o caso ao lado não
pode ser verdadeiro!
A partir de agora, passaremos a representar os algoritmos através de funções de
complexidade de variável n onde essa função é sempre maior que zero.
Para o nosso contexto, vamos definir que uma função f(n) domina
assintoticamente outra função g(n) se quando n -> infinito, a curva de g(n) nunca
crescerá mais rápido que a curva de f(n) a partir de um ponto m (n0).
Ordem O
Definição: Dadas funções assintoticamente não negativas f(n) e g(n),
dizemos que g(n) está na ordem O de f(n) e escrevemos
para expressar que f(n) domina assintoticamente g(n). Isso significa
dizer que se o tempo de execução de um programa fosse
representado por g(n), ele seria da ordem de no máximo f(n).
Ordem O
Se afirmamos que então estamos dizendo que é
possível encontrar duas constantes positivas c e m tais que, para
𝑛 ≥ 𝑚 temos 𝑔 𝑛 ≤ 𝑐 ∗ |𝑓 𝑛 |.
No gráfico ao lado, f(n) só domina
assintoticamente g(n) a partir de m e quando
encontramos uma constante c apropriada!
Ordem O
Exemplo: Seja 𝑔 𝑛 = 𝑛 + 1 2
𝑒 𝑓 𝑛 = 𝑛2
podemos afirmar que 𝑔 𝑛 = 𝑂 𝑓 𝑛 ?
Pela definição isso será verdade quando
𝑛 + 1 2 ≤ 𝑐𝑛2 𝑝𝑎𝑟𝑎 𝑛 ≥ 𝑚
Cada problema tem uma forma mais prático que outro para encontrarmos a constante c. Para esse caso precisamos
abrir g(n) ficando com:
𝑛2
+ 2𝑛 + 1
A estratégia aqui é igualar os graus em todos os elementos acima com f(n), que possui o maior grau quadrático (2).
Logo, sabemos então que:
𝑛2
+ 2𝑛 + 1 ≤ 𝑛2
+ 2𝑛2
+ 1𝑛2
Para algum 𝑛 ≥ 0 que ainda não sabemos qual é (esse será nosso m!)
Ordem O
Exemplo: Seja 𝑔 𝑛 = 𝑛 + 1 2
𝑒 𝑓 𝑛 = 𝑛2
podemos afirmar que 𝑔 𝑛 = 𝑂 𝑓 𝑛 ?
𝑛2 + 2𝑛 + 1 ≤ 𝑛2 + 2𝑛2 + 1𝑛2
Somando todos os termos do lado direito temos que:
𝑛2 + 2𝑛 + 1 ≤ 4𝑛2 (1)
Comparando com a nossa situação inicial:
𝑛 + 1 2
= 𝑛2
+ 2𝑛 + 1 ≤ 𝑐𝑛2
Podemos perceber que c = 4. Vamos achar nosso m. Se n = 0, substituindo em (1):
1 ≤ 0 𝑜 𝑞𝑢𝑒 𝑛ã𝑜 é 𝑣𝑒𝑟𝑑𝑎𝑑𝑒!
Ordem O
Exemplo: Seja 𝑔 𝑛 = 𝑛 + 1 2
𝑒 𝑓 𝑛 = 𝑛2
podemos afirmar que 𝑔 𝑛 = 𝑂 𝑓 𝑛 ?
𝑛2
+ 2𝑛 + 1 ≤ 𝑛2
+ 2𝑛2
+ 1𝑛2
Somando todos os termos do lado direito temos que:
𝑛2
+ 2𝑛 + 1 ≤ 4𝑛2
(1)
Se n = 1, substituindo em (1):
4 ≤ 4 𝑜 𝑞𝑢𝑒 é 𝑣𝑒𝑟𝑑𝑎𝑑𝑒!
Como já determinamos nosso c, então o primeiro valor de n que torna a inequação verdadeira será o nosso n!
Ordem O
Exemplo: Seja 𝑔 𝑛 = 𝑛 + 1 2
𝑒 𝑓 𝑛 = 𝑛2
podemos afirmar que 𝑔 𝑛 = 𝑂 𝑓 𝑛 ?
Logo 𝑔 𝑛 = 𝑂 𝑓 𝑛 é uma afirmação válida quando definimos c = 4 e m = 1.
É importante notar que nem sempre se conseguirá
resolver o problema utilizando esta abordagem e
precisamos de outras estratégias para encontrar as duas
constantes que vão provar a nossa afirmação!
Perguntas?

Contenu connexe

Tendances

Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dadosessa
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Internet
InternetInternet
Internetanaf
 
Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto WordLeinylson Fontinele
 
COBIT 5 Parte 01: 1º Princípio e Cascata de Objetivos
COBIT 5 Parte 01: 1º Princípio e Cascata de ObjetivosCOBIT 5 Parte 01: 1º Princípio e Cascata de Objetivos
COBIT 5 Parte 01: 1º Princípio e Cascata de ObjetivosFernando Palma
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosMauro Pereira
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoRegis Magalhães
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
Como fazer o holerite (folha de pagamento
Como fazer o holerite (folha de pagamentoComo fazer o holerite (folha de pagamento
Como fazer o holerite (folha de pagamentoMaria Rosangela Nunes
 
Logica Proposicional
Logica ProposicionalLogica Proposicional
Logica ProposicionalAdolfo Neto
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresWillians Miyabara
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 

Tendances (20)

Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Aula 3 - Política de Segurança da Informação (PSI)
Aula 3 - Política de Segurança da Informação (PSI)Aula 3 - Política de Segurança da Informação (PSI)
Aula 3 - Política de Segurança da Informação (PSI)
 
1º trabalho base dados
1º trabalho base dados1º trabalho base dados
1º trabalho base dados
 
Algoritmos gulosos
Algoritmos gulososAlgoritmos gulosos
Algoritmos gulosos
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
Internet
InternetInternet
Internet
 
Utilização do editor de texto Word
Utilização do editor de texto WordUtilização do editor de texto Word
Utilização do editor de texto Word
 
Visualg
VisualgVisualg
Visualg
 
COBIT 5 Parte 01: 1º Princípio e Cascata de Objetivos
COBIT 5 Parte 01: 1º Princípio e Cascata de ObjetivosCOBIT 5 Parte 01: 1º Princípio e Cascata de Objetivos
COBIT 5 Parte 01: 1º Princípio e Cascata de Objetivos
 
Lógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicosLógica binária, potas lógicas e circuitos lógicos
Lógica binária, potas lógicas e circuitos lógicos
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 Algoritmo
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Como fazer o holerite (folha de pagamento
Como fazer o holerite (folha de pagamentoComo fazer o holerite (folha de pagamento
Como fazer o holerite (folha de pagamento
 
Logica Proposicional
Logica ProposicionalLogica Proposicional
Logica Proposicional
 
Aula 6 - Constantes e variáveis
Aula 6 - Constantes e variáveisAula 6 - Constantes e variáveis
Aula 6 - Constantes e variáveis
 
Exercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetoresExercicios resolvidos visu alg vetores
Exercicios resolvidos visu alg vetores
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 

Similaire à Análise da complexidade de algoritmos

Similaire à Análise da complexidade de algoritmos (20)

Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdf
 
Metódos de Pesquisa em C
Metódos de Pesquisa em CMetódos de Pesquisa em C
Metódos de Pesquisa em C
 
Sequencias e-series
Sequencias e-seriesSequencias e-series
Sequencias e-series
 
Relações de recorrência
Relações de recorrênciaRelações de recorrência
Relações de recorrência
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
4 groebner danton4 dissertacao
4 groebner danton4 dissertacao4 groebner danton4 dissertacao
4 groebner danton4 dissertacao
 
Estatistica regular 8
Estatistica regular 8Estatistica regular 8
Estatistica regular 8
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdf
 
Cal i a02
Cal i a02Cal i a02
Cal i a02
 
06 complexidade de problemas
06   complexidade de problemas06   complexidade de problemas
06 complexidade de problemas
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Análise de Complexidade em Algoritmos.pdf
Análise de Complexidade em Algoritmos.pdfAnálise de Complexidade em Algoritmos.pdf
Análise de Complexidade em Algoritmos.pdf
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Tutorial aed iii 001 - algoritmo de ordenação shellsort
Tutorial aed iii   001 - algoritmo de ordenação shellsortTutorial aed iii   001 - algoritmo de ordenação shellsort
Tutorial aed iii 001 - algoritmo de ordenação shellsort
 
Cálculo Numérico
Cálculo NuméricoCálculo Numérico
Cálculo Numérico
 
19 algoritmos de enumeracao
19   algoritmos de enumeracao19   algoritmos de enumeracao
19 algoritmos de enumeracao
 
Python
PythonPython
Python
 

Plus de Pablo Silva

Agilidade, times e outras coisas mais
Agilidade, times e outras coisas maisAgilidade, times e outras coisas mais
Agilidade, times e outras coisas maisPablo Silva
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performancePablo Silva
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performancePablo Silva
 
Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...Pablo Silva
 
OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?Pablo Silva
 
Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...Pablo Silva
 
As próximas ondas da tecnologia
As próximas ondas da tecnologiaAs próximas ondas da tecnologia
As próximas ondas da tecnologiaPablo Silva
 
Carreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vemCarreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vemPablo Silva
 
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio Pablo Silva
 
Lets talk about OKRs
Lets talk about OKRsLets talk about OKRs
Lets talk about OKRsPablo Silva
 
2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-driven2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-drivenPablo Silva
 
Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!Pablo Silva
 
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...Pablo Silva
 
Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)Pablo Silva
 
Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)Pablo Silva
 
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimentoDual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimentoPablo Silva
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em CPablo Silva
 

Plus de Pablo Silva (20)

Agilidade, times e outras coisas mais
Agilidade, times e outras coisas maisAgilidade, times e outras coisas mais
Agilidade, times e outras coisas mais
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performance
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performance
 
Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...
 
OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?
 
Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...
 
As próximas ondas da tecnologia
As próximas ondas da tecnologiaAs próximas ondas da tecnologia
As próximas ondas da tecnologia
 
Carreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vemCarreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vem
 
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
 
Lets talk about OKRs
Lets talk about OKRsLets talk about OKRs
Lets talk about OKRs
 
2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-driven2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-driven
 
Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!
 
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
 
Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)
 
Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)
 
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimentoDual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em C
 
Structs em C
Structs em CStructs em C
Structs em C
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Funções em C
Funções em CFunções em C
Funções em C
 

Dernier

matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 

Dernier (20)

matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 

Análise da complexidade de algoritmos

  • 3. • Definição de algoritmo • Definição de tipo de dado • Definição de TAD • Análise de algoritmos
  • 4. Hoje • Análise da complexidade de algoritmos • Resolver exercícios
  • 5. Mas antes... Uma definição mais simples do que é tipo de dado (pra responder na prova se cair!!!): • Em linguagens de programação o tipo de dado de uma variável, constante ou função define o conjunto de valores que a variável, constante ou função pode assumir. • Ex.: variável boolean pode assumir valores true ou false. Portanto true e false é o conjunto de valores de uma variável booleana.
  • 6. Por que analisar um algoritmo? Depois que decidimos qual o problema que queremos resolver (Ex. encontrar um elemento num conjunto de valores), precisamos ter certeza que o algoritmo escolhido para o nosso problema, irá resolvê-lo em um espaço de tempo e consumir memória, num intervalo de tempo e quantidade de memória gastas aceitáveis para nosso cliente.
  • 7. Por que analisar um algoritmo? Nenhum cliente vai querer um programa que demora 10 minutos para encontrar um elemento dentro de um conjunto de valores! Isso é perda de dinheiro e tempo, uma vez que deve existir um algoritmo que faça isso em poucos milissegundos!
  • 8. Por que analisar um algoritmo? No final, o que vai importar na análise é qual o caso médio que tal algoritmo demora para nos dar a saída do problema!
  • 9. Passos para analisar um algoritmo e decidir os três casos 1. Entenda o problema: sem entender o problema é praticamente impossível determinar os três casos corretamente.
  • 10. Entendendo o problema Se temos o problema de encontrar um elemento num conjunto de valores, entender o problema significa: Talvez o elemento procurado esteja na primeira posição buscada, ou talvez esteja na última. Mas ele pode também estar no meio ou próximo de lá. Dessa maneira já sabemos qual os nossos melhor caso, pior caso e caso médio respectivamente. Agora só precisamos encontrar uma maneira de representa-los matematicamente.
  • 11. Passos para analisar um algoritmo e decidir os três casos 2. Encontre no algoritmo loops e estruturas condicionais. ESQUEÇA O RESTO!
  • 12. Encontre loops e condicionais
  • 13. Encontre loops e condicionais
  • 14. Passos para analisar um algoritmo e decidir os três casos 3. Decida quantas vezes o condicional irá executar baseado na quantidade de vezes que o loop executa. *É preciso olhar para o condicional, pois o custo de acesso a memória vem dele!
  • 15. Encontre loops e condicionais Se tamanho = n, então o for executará n vezes, uma vez que vai de 0 até (n – 1). Para visualizar o número de vezes que o for executa, pode-se fazer o seguinte: Por exemplo, se n = 2, i começa em 0 (i = 0) e 0 < 2. Na segunda iteração, i recebe 1 (i = 1) e 1 < 2. A terceira iteração nos dá que i será igual a 2 (i = 2) e 2 < 2 é falso e o loop não será executado novamente.Logo, o loop executou somente 2 vezes, uma vez que a terceira iteração não foi executada. Veja que 2 é o número de elementos que temos, pois n = 2 e então o loop rodou n vezes.
  • 16. Passos para analisar um algoritmo e decidir os três casos 3. Seja f(n) uma função de complexidade, decida f(n) para o melhor e pior caso e caso médio, utilizando seu conhecimento sobre o problema.
  • 17. Decida quantas vezes será executado Melhor caso: 𝑓 𝑛 = 1 O if foi acessado somente uma vez, pois o elemento estava na primeira posição acessada. Pior caso: 𝑓 𝑛 = 𝑛 O if foi acessado todas as vezes que o loop executou, pois o elemento procurado estava na última posição acessada ou não estava no vetor. Seja 𝑓 𝑛 uma função de complexidade definida pelo número de elementos consultados no arquivo.
  • 18. Decida quantas vezes será executado Caso médio: 𝑓 𝑛 = 𝑛+1 2 O caso médio é dado por: 𝑃𝑖𝑜𝑟 𝑐𝑎𝑠𝑜 + 𝑀𝑒𝑙ℎ𝑜𝑟 𝑐𝑎𝑠𝑜 2 É o mesmo que dizer que o elemento está no meio ou próximo dele! Seja 𝑓 𝑛 uma função de complexidade definida pelo número de elementos consultados no arquivo.
  • 19. Análise assintótica Para a análise de algoritmos só vai importar mesmo, quando temos valores enormes de n. Isso é necessário, porque até mesmo o pior dos algoritmos pode resolver algum problema quando n é suficientemente pequeno.
  • 20. Análise assintótica O tipo de matemática que está interessado em valores enormes de n, é chamado de assintótico, e as funções aqui definidas serão classificadas em “ordens” (como as ordens religiosas da Idade Média), onde todas as funções de uma mesma ordem são equivalentes.
  • 21. Análise assintótica Por exemplo, sejam as funções: n2 , (3/2)n2 , 9999n2 , n2/1000 , n2+100n , etc. Elas crescem todas na mesma velocidade e portanto são todas “equivalentes” e desse modo de mesma “ordem”.
  • 22. Análise assintótica Por exemplo, sejam as funções: n2 , (3/2)n2 , 9999n2 , n2/1000 , n2+100n , etc. Nesse caso é fácil de perceber que todas crescem na mesma velocidade. Todas as funções dadas são quadráticas. Olhem para os gráficos á seguir:
  • 23.
  • 24.
  • 25.
  • 26. Análise assintótica As proporções são diferentes, mas as curvas tem o mesmo comportamento! (comportamento é o mesmo que dizer crescimento) Aqui, vamos nos concentrar na primeira ordem, a Ordem O.
  • 27. Dominação assintótica Se pudermos provar que f(n) domina assintoticamente g(n) a partir de um ponto m quando n-> infinito, então o caso ao lado não pode ser verdadeiro! A partir de agora, passaremos a representar os algoritmos através de funções de complexidade de variável n onde essa função é sempre maior que zero. Para o nosso contexto, vamos definir que uma função f(n) domina assintoticamente outra função g(n) se quando n -> infinito, a curva de g(n) nunca crescerá mais rápido que a curva de f(n) a partir de um ponto m (n0).
  • 28. Ordem O Definição: Dadas funções assintoticamente não negativas f(n) e g(n), dizemos que g(n) está na ordem O de f(n) e escrevemos para expressar que f(n) domina assintoticamente g(n). Isso significa dizer que se o tempo de execução de um programa fosse representado por g(n), ele seria da ordem de no máximo f(n).
  • 29. Ordem O Se afirmamos que então estamos dizendo que é possível encontrar duas constantes positivas c e m tais que, para 𝑛 ≥ 𝑚 temos 𝑔 𝑛 ≤ 𝑐 ∗ |𝑓 𝑛 |. No gráfico ao lado, f(n) só domina assintoticamente g(n) a partir de m e quando encontramos uma constante c apropriada!
  • 30. Ordem O Exemplo: Seja 𝑔 𝑛 = 𝑛 + 1 2 𝑒 𝑓 𝑛 = 𝑛2 podemos afirmar que 𝑔 𝑛 = 𝑂 𝑓 𝑛 ? Pela definição isso será verdade quando 𝑛 + 1 2 ≤ 𝑐𝑛2 𝑝𝑎𝑟𝑎 𝑛 ≥ 𝑚 Cada problema tem uma forma mais prático que outro para encontrarmos a constante c. Para esse caso precisamos abrir g(n) ficando com: 𝑛2 + 2𝑛 + 1 A estratégia aqui é igualar os graus em todos os elementos acima com f(n), que possui o maior grau quadrático (2). Logo, sabemos então que: 𝑛2 + 2𝑛 + 1 ≤ 𝑛2 + 2𝑛2 + 1𝑛2 Para algum 𝑛 ≥ 0 que ainda não sabemos qual é (esse será nosso m!)
  • 31. Ordem O Exemplo: Seja 𝑔 𝑛 = 𝑛 + 1 2 𝑒 𝑓 𝑛 = 𝑛2 podemos afirmar que 𝑔 𝑛 = 𝑂 𝑓 𝑛 ? 𝑛2 + 2𝑛 + 1 ≤ 𝑛2 + 2𝑛2 + 1𝑛2 Somando todos os termos do lado direito temos que: 𝑛2 + 2𝑛 + 1 ≤ 4𝑛2 (1) Comparando com a nossa situação inicial: 𝑛 + 1 2 = 𝑛2 + 2𝑛 + 1 ≤ 𝑐𝑛2 Podemos perceber que c = 4. Vamos achar nosso m. Se n = 0, substituindo em (1): 1 ≤ 0 𝑜 𝑞𝑢𝑒 𝑛ã𝑜 é 𝑣𝑒𝑟𝑑𝑎𝑑𝑒!
  • 32. Ordem O Exemplo: Seja 𝑔 𝑛 = 𝑛 + 1 2 𝑒 𝑓 𝑛 = 𝑛2 podemos afirmar que 𝑔 𝑛 = 𝑂 𝑓 𝑛 ? 𝑛2 + 2𝑛 + 1 ≤ 𝑛2 + 2𝑛2 + 1𝑛2 Somando todos os termos do lado direito temos que: 𝑛2 + 2𝑛 + 1 ≤ 4𝑛2 (1) Se n = 1, substituindo em (1): 4 ≤ 4 𝑜 𝑞𝑢𝑒 é 𝑣𝑒𝑟𝑑𝑎𝑑𝑒! Como já determinamos nosso c, então o primeiro valor de n que torna a inequação verdadeira será o nosso n!
  • 33. Ordem O Exemplo: Seja 𝑔 𝑛 = 𝑛 + 1 2 𝑒 𝑓 𝑛 = 𝑛2 podemos afirmar que 𝑔 𝑛 = 𝑂 𝑓 𝑛 ? Logo 𝑔 𝑛 = 𝑂 𝑓 𝑛 é uma afirmação válida quando definimos c = 4 e m = 1. É importante notar que nem sempre se conseguirá resolver o problema utilizando esta abordagem e precisamos de outras estratégias para encontrar as duas constantes que vão provar a nossa afirmação!