SlideShare una empresa de Scribd logo
1 de 12
COMPLEXIDADE DE
PROBLEMAS
Prof.: Marlon Vinicius da Silva
Disciplina: Computação e Algoritmo I
Eficiência de algoritmos


Que recursos computacionais são necessários
para executar um algoritmo?
 Tempo

de execução = Complexidade Temporal
 Espaço de memória = Complexidade Espacial


Espaço e tempo dependem da dimensão dos
dados. Podemos portanto representar a
eficiência por funções!
Eficiência de algoritmos




Na prática é muito difícil calcular com rigor o
tempo de execução de um algoritmo!
Identificar no algoritmo as operações elementares
e determinar o número de vezes que são
executadas.
O tempo real de execução de cada operação
elementar será uma constante multiplicativa!
 Independentemente do computador!




Dados vários algoritmos para solucionar um
mesmo problema, devemos escolher aquele que
nos permite resolver o problema mais
rapidamente e utilizando o menor espaço possível
para representar os dados do problema!
Eficiência de algoritmos






Um algoritmo pode ser mais eficiente que
outro para inputs de “pequena” dimensão e
deixar de o ser para inputs de “grande”
dimensão.
Um algoritmo pode ser mais eficiente que
outro em tempo e não o ser em espaço.
Mais ainda, diferentes amostras com a mesma
dimensão podem ser processadas em tempos
diferentes, podendo-se falar de eficiência
temporal mínima (melhor caso), máxima
(pior caso) e média.
Ordem de Complexidade




Normalmente a análise de algoritmos é
simplificada se nos concentrarmos na sua
eficiência assintótica.
Exemplos:
 (n+1)/2

= O(n)
 2n3+2n -7 = O(n3)
 (n2+5)(n-3) = O(n3)
 ln n = O(log2 n)
 25 = O(n0) = O(1)
Classes de Complexidade
Algorítmica











O(1) Complexidade Constante
O(log n) Complexidade Logarítmica
O(n) Complexidade Linear
O(n log n) Complexidade Log-Linear
O(n2) Complexidade Quadrática
O(n3) Complexidade Cúbica
O(nk) Complexidade Polinomial
O(an) Complexidade Exponencial
O(n!) Complexidade Factorial
Classes de Complexidade
Algorítmica
10

50

100

1000

104

105

106

Log2 n

3

5

6

9

13

16

19

n

10

50

100

1000

104

105

106

n log2 n

30

282

664

9965

105

106

107

n2

100

2500

104

106

108

1010

1012

n3

1000

125000

106

109

1012

1015

1018

2n

1000

1016

1030

10300

103000

1030000

10300000

n!

106

1065

10160

Bomba! Bomba! Bomba! Bomba!

nn

1010

1085

10200

Bomba! Bomba! Bomba! Bomba!
Classes de Complexidade
Algorítmica


Com 210 ≈103 , logo, Bomba! ≈ número grande
inimaginável










1 dia 24 X 60 X 60 = 86400 ≈ 9 X 1010 microssegundos
1 ano = 365 X 24 X 60 X 60 § 3 X 107 segundos ≈3 X 1013
microssegundos
1 século ≈ 3 X 109 segundos ≈ 3 X 1015 microssegundos
1 milênio ≈ 3 X 1010 segundos ≈ 3 X 1016 microssegundos
Big Bang ≈ 15 X 109 anos ≈ 45 X 1016 segundos ≈ 45 X
1022 microssegundos

Algoritmos de complexidade constante e logarítmica
são os mais eficientes
Algoritmos de complexidade exponencial geram
tempos de execução incomputáveis
Complexidade de um problema


O limite superior é estabelecido pelo melhor
algoritmo, entre os algoritmos conhecidos.
A

descoberta de um novo algoritmo mais eficiente
faz descer o limite superior.



O limite inferior é estabelecido por técnicas de
prova que comprovem que não existem
algoritmos mais eficientes.
 Qualquer

algoritmo, conhecido ou desconhecido,
deverá ser mais complexo do que esse limite.
Notações


Θ(theta) – A expressão f(n) = Θ(g(n)) significa que as
funções f(n) e g(n) possuem a mesma ordem de
crescimento, isto é, crescem de forma equiparável.






As funções n2 e 5n2, por exemplo, crescem em ritmo
quadrático.

O(O maiúsculo ou big o) – A expressão f(n) =
O(g(n)) significa que f(n) não cresce mais que g(n),
podendo crescer de forma igual ou inferior.
o (o minúsculo) – e f(n) = O(g(n)), a ordem de
crescimento de f(n) nunca será maior que a de g(n),
podendo ser igual. Entretanto, se f(n) = o(g(n)), a
ordem de crescimento de f(n) nunca será maior nem
igual à de g(n)
Notações




Ω(Omega maiúsculo) – A expressão f(n) =
Ω(g(n)) significa que a ordem de crescimento
de f(n) é maior ou igual à ordem de g(n)
ω(ômega minúsculo) - A notação ω denota
um limite assintótico inferior, assim como Ω. A
diferença é que, se f(n) = ω(g(n)),
para qualquer constante c > 0 que multiplique
g(n) existe um n0 > 0 tal que para todo n ≥ no,
f(n) nunca será menor nem igual a g(n).
Assim, diferentemente de Ω, o crescimento da
função f(n) nunca se igualará ao de g(n).
Notações


A analogia com números reais tornou o
entendimento das notações mais intuitivo,
com a visualização das regras:
 f(n)

= O(g(n)) ≈ a ≤ b,
 f(n) = Ω(g(n)) ≈ a ≥ b,
 f(n) = Θ(g(n)) ≈ a = b,
 f(n) = o(g(n)) ≈ a < b,
 f(n) = ω(g(n)) ≈ a > b.

Más contenido relacionado

La actualidad más candente

F1 aaula 04 - velocidade instantânea.
F1  aaula 04 - velocidade instantânea.F1  aaula 04 - velocidade instantânea.
F1 aaula 04 - velocidade instantânea.
Rildo Borges
 

La actualidad más candente (19)

4ª questão
4ª questão4ª questão
4ª questão
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Aula de Recuperação Matemática
Aula de Recuperação MatemáticaAula de Recuperação Matemática
Aula de Recuperação Matemática
 
Aula de Recuperação Matemática
Aula de Recuperação MatemáticaAula de Recuperação Matemática
Aula de Recuperação Matemática
 
F1 aaula 04 - velocidade instantânea.
F1  aaula 04 - velocidade instantânea.F1  aaula 04 - velocidade instantânea.
F1 aaula 04 - velocidade instantânea.
 
Questão 03
Questão 03Questão 03
Questão 03
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 
Mu
MuMu
Mu
 
Aula18
Aula18 Aula18
Aula18
 
Tutorial blender animação básica
Tutorial blender animação básicaTutorial blender animação básica
Tutorial blender animação básica
 
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempoAnálise de Algoritmos - Problemas, instâncias, algoritmos e tempo
Análise de Algoritmos - Problemas, instâncias, algoritmos e tempo
 
NÚMEROS COMPLEXOS - PARTE 02
NÚMEROS COMPLEXOS - PARTE 02NÚMEROS COMPLEXOS - PARTE 02
NÚMEROS COMPLEXOS - PARTE 02
 
Seno coseno 102 26
Seno coseno 102 26Seno coseno 102 26
Seno coseno 102 26
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Orientação de estudo para movimento circular uniforme
Orientação de estudo para movimento circular uniformeOrientação de estudo para movimento circular uniforme
Orientação de estudo para movimento circular uniforme
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NP
 
Aula 10
Aula   10Aula   10
Aula 10
 
Desenvolvimento de algumas séries
Desenvolvimento de algumas sériesDesenvolvimento de algumas séries
Desenvolvimento de algumas séries
 
Aula 9
Aula   9Aula   9
Aula 9
 

Destacado

Destacado (20)

07 exercícios
07   exercícios07   exercícios
07 exercícios
 
03 bases numericas
03   bases numericas03   bases numericas
03 bases numericas
 
06 áudio
06   áudio06   áudio
06 áudio
 
08 video digital
08   video digital08   video digital
08 video digital
 
01 aula inicial apresentação
01   aula inicial  apresentação01   aula inicial  apresentação
01 aula inicial apresentação
 
05 - Aervidor DHCP
05 - Aervidor DHCP05 - Aervidor DHCP
05 - Aervidor DHCP
 
07 animação
07   animação07   animação
07 animação
 
07 - Atividade III
07 - Atividade III07 - Atividade III
07 - Atividade III
 
09 texto e hipertexto
09   texto e hipertexto09   texto e hipertexto
09 texto e hipertexto
 
05 circuitos logicos
05   circuitos logicos05   circuitos logicos
05 circuitos logicos
 
05 imagem digital
05   imagem digital05   imagem digital
05 imagem digital
 
06 - Servidor Apache
06 - Servidor Apache06 - Servidor Apache
06 - Servidor Apache
 
Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2Interface Homem-máquina - Unimep/Pronatec - Aula 2
Interface Homem-máquina - Unimep/Pronatec - Aula 2
 
Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7Interface Homem-máquina - Unimep/Pronatec - Aula 7
Interface Homem-máquina - Unimep/Pronatec - Aula 7
 
Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1Interface Homem-máquina - Unimep/Pronatec - Aula 1
Interface Homem-máquina - Unimep/Pronatec - Aula 1
 
Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6Interface Homem-máquina - Unimep/Pronatec - Aula 6
Interface Homem-máquina - Unimep/Pronatec - Aula 6
 
Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3Interface Homem-máquina - Unimep/Pronatec - Aula 3
Interface Homem-máquina - Unimep/Pronatec - Aula 3
 
Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4Interface Homem-máquina - Unimep/Pronatec - Aula 4
Interface Homem-máquina - Unimep/Pronatec - Aula 4
 
Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9Interface Homem-máquina - Unimep/Pronatec - Aula 9
Interface Homem-máquina - Unimep/Pronatec - Aula 9
 
Aula analise algoritmos
Aula analise algoritmosAula analise algoritmos
Aula analise algoritmos
 

Similar a 06 complexidade de problemas

13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
Ricardo Bolanho
 
Apresentacao N P Completude Loiane
Apresentacao  N P Completude  LoianeApresentacao  N P Completude  Loiane
Apresentacao N P Completude Loiane
Loiane Groner
 
Relatório do projecto computacional grupo 72
Relatório do projecto computacional   grupo 72Relatório do projecto computacional   grupo 72
Relatório do projecto computacional grupo 72
Rafael Lucas
 
Método de Euler Progressivo
Método de Euler Progressivo Método de Euler Progressivo
Método de Euler Progressivo
Rafael Lucas
 

Similar a 06 complexidade de problemas (20)

Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdf
 
Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdf
 
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
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise Assintótica
 
Progressões
ProgressõesProgressões
Progressões
 
Apresentacao N P Completude Loiane
Apresentacao  N P Completude  LoianeApresentacao  N P Completude  Loiane
Apresentacao N P Completude Loiane
 
Complexidade algoritmos
Complexidade algoritmosComplexidade algoritmos
Complexidade algoritmos
 
Logaritmos
LogaritmosLogaritmos
Logaritmos
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
Progressão.pdf
Progressão.pdfProgressão.pdf
Progressão.pdf
 
Logaritimos
LogaritimosLogaritimos
Logaritimos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Log 2016
Log 2016Log 2016
Log 2016
 
Relatório do projecto computacional grupo 72
Relatório do projecto computacional   grupo 72Relatório do projecto computacional   grupo 72
Relatório do projecto computacional grupo 72
 
Método de Euler Progressivo
Método de Euler Progressivo Método de Euler Progressivo
Método de Euler Progressivo
 
Manual winplot
Manual winplotManual winplot
Manual winplot
 
Sequencias e series unicamp
Sequencias e series   unicampSequencias e series   unicamp
Sequencias e series unicamp
 
Aula2
Aula2Aula2
Aula2
 
Cinemática
CinemáticaCinemática
Cinemática
 

Más de Marlon Vinicius da Silva (18)

Modelo de plano de ensino computação e algoritmo i
Modelo de plano de ensino computação e algoritmo iModelo de plano de ensino computação e algoritmo i
Modelo de plano de ensino computação e algoritmo i
 
02 historia da programação
02   historia da programação02   historia da programação
02 historia da programação
 
01 aula inicial apresentação
01   aula inicial  apresentação01   aula inicial  apresentação
01 aula inicial apresentação
 
01 aula inicial apresentação
01   aula inicial  apresentação01   aula inicial  apresentação
01 aula inicial apresentação
 
05 servidor dhcp
05   servidor dhcp05   servidor dhcp
05 servidor dhcp
 
03 testando a configuração de uma rede
03   testando a configuração de uma rede03   testando a configuração de uma rede
03 testando a configuração de uma rede
 
04 produto hipermidia
04   produto hipermidia04   produto hipermidia
04 produto hipermidia
 
02 conceitos iniciais
02   conceitos iniciais02   conceitos iniciais
02 conceitos iniciais
 
01 aula inicial apresentação
01   aula inicial  apresentação01   aula inicial  apresentação
01 aula inicial apresentação
 
03 ferramentas de autoria
03   ferramentas de autoria03   ferramentas de autoria
03 ferramentas de autoria
 
05 servidor dhcp
05   servidor dhcp05   servidor dhcp
05 servidor dhcp
 
04 atividade ii
04   atividade ii04   atividade ii
04 atividade ii
 
03 diagnostico de rede
03   diagnostico de rede03   diagnostico de rede
03 diagnostico de rede
 
02 configurando placa de rede
02   configurando placa de rede02   configurando placa de rede
02 configurando placa de rede
 
01 notações iniciais
01   notações iniciais01   notações iniciais
01 notações iniciais
 
Usabilidade
UsabilidadeUsabilidade
Usabilidade
 
Interface homem maquina introdução
Interface homem maquina   introduçãoInterface homem maquina   introdução
Interface homem maquina introdução
 
Interface homem maquina introdução
Interface homem maquina   introduçãoInterface homem maquina   introdução
Interface homem maquina introdução
 

Último

8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
tatianehilda
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 

Último (20)

Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito8 Aula de predicado verbal e nominal - Predicativo do sujeito
8 Aula de predicado verbal e nominal - Predicativo do sujeito
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
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
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
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
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 

06 complexidade de problemas

  • 1. COMPLEXIDADE DE PROBLEMAS Prof.: Marlon Vinicius da Silva Disciplina: Computação e Algoritmo I
  • 2. Eficiência de algoritmos  Que recursos computacionais são necessários para executar um algoritmo?  Tempo de execução = Complexidade Temporal  Espaço de memória = Complexidade Espacial  Espaço e tempo dependem da dimensão dos dados. Podemos portanto representar a eficiência por funções!
  • 3. Eficiência de algoritmos   Na prática é muito difícil calcular com rigor o tempo de execução de um algoritmo! Identificar no algoritmo as operações elementares e determinar o número de vezes que são executadas. O tempo real de execução de cada operação elementar será uma constante multiplicativa!  Independentemente do computador!   Dados vários algoritmos para solucionar um mesmo problema, devemos escolher aquele que nos permite resolver o problema mais rapidamente e utilizando o menor espaço possível para representar os dados do problema!
  • 4. Eficiência de algoritmos    Um algoritmo pode ser mais eficiente que outro para inputs de “pequena” dimensão e deixar de o ser para inputs de “grande” dimensão. Um algoritmo pode ser mais eficiente que outro em tempo e não o ser em espaço. Mais ainda, diferentes amostras com a mesma dimensão podem ser processadas em tempos diferentes, podendo-se falar de eficiência temporal mínima (melhor caso), máxima (pior caso) e média.
  • 5. Ordem de Complexidade   Normalmente a análise de algoritmos é simplificada se nos concentrarmos na sua eficiência assintótica. Exemplos:  (n+1)/2 = O(n)  2n3+2n -7 = O(n3)  (n2+5)(n-3) = O(n3)  ln n = O(log2 n)  25 = O(n0) = O(1)
  • 6. Classes de Complexidade Algorítmica          O(1) Complexidade Constante O(log n) Complexidade Logarítmica O(n) Complexidade Linear O(n log n) Complexidade Log-Linear O(n2) Complexidade Quadrática O(n3) Complexidade Cúbica O(nk) Complexidade Polinomial O(an) Complexidade Exponencial O(n!) Complexidade Factorial
  • 7. Classes de Complexidade Algorítmica 10 50 100 1000 104 105 106 Log2 n 3 5 6 9 13 16 19 n 10 50 100 1000 104 105 106 n log2 n 30 282 664 9965 105 106 107 n2 100 2500 104 106 108 1010 1012 n3 1000 125000 106 109 1012 1015 1018 2n 1000 1016 1030 10300 103000 1030000 10300000 n! 106 1065 10160 Bomba! Bomba! Bomba! Bomba! nn 1010 1085 10200 Bomba! Bomba! Bomba! Bomba!
  • 8. Classes de Complexidade Algorítmica  Com 210 ≈103 , logo, Bomba! ≈ número grande inimaginável        1 dia 24 X 60 X 60 = 86400 ≈ 9 X 1010 microssegundos 1 ano = 365 X 24 X 60 X 60 § 3 X 107 segundos ≈3 X 1013 microssegundos 1 século ≈ 3 X 109 segundos ≈ 3 X 1015 microssegundos 1 milênio ≈ 3 X 1010 segundos ≈ 3 X 1016 microssegundos Big Bang ≈ 15 X 109 anos ≈ 45 X 1016 segundos ≈ 45 X 1022 microssegundos Algoritmos de complexidade constante e logarítmica são os mais eficientes Algoritmos de complexidade exponencial geram tempos de execução incomputáveis
  • 9. Complexidade de um problema  O limite superior é estabelecido pelo melhor algoritmo, entre os algoritmos conhecidos. A descoberta de um novo algoritmo mais eficiente faz descer o limite superior.  O limite inferior é estabelecido por técnicas de prova que comprovem que não existem algoritmos mais eficientes.  Qualquer algoritmo, conhecido ou desconhecido, deverá ser mais complexo do que esse limite.
  • 10. Notações  Θ(theta) – A expressão f(n) = Θ(g(n)) significa que as funções f(n) e g(n) possuem a mesma ordem de crescimento, isto é, crescem de forma equiparável.    As funções n2 e 5n2, por exemplo, crescem em ritmo quadrático. O(O maiúsculo ou big o) – A expressão f(n) = O(g(n)) significa que f(n) não cresce mais que g(n), podendo crescer de forma igual ou inferior. o (o minúsculo) – e f(n) = O(g(n)), a ordem de crescimento de f(n) nunca será maior que a de g(n), podendo ser igual. Entretanto, se f(n) = o(g(n)), a ordem de crescimento de f(n) nunca será maior nem igual à de g(n)
  • 11. Notações   Ω(Omega maiúsculo) – A expressão f(n) = Ω(g(n)) significa que a ordem de crescimento de f(n) é maior ou igual à ordem de g(n) ω(ômega minúsculo) - A notação ω denota um limite assintótico inferior, assim como Ω. A diferença é que, se f(n) = ω(g(n)), para qualquer constante c > 0 que multiplique g(n) existe um n0 > 0 tal que para todo n ≥ no, f(n) nunca será menor nem igual a g(n). Assim, diferentemente de Ω, o crescimento da função f(n) nunca se igualará ao de g(n).
  • 12. Notações  A analogia com números reais tornou o entendimento das notações mais intuitivo, com a visualização das regras:  f(n) = O(g(n)) ≈ a ≤ b,  f(n) = Ω(g(n)) ≈ a ≥ b,  f(n) = Θ(g(n)) ≈ a = b,  f(n) = o(g(n)) ≈ a < b,  f(n) = ω(g(n)) ≈ a > b.