Conceitos Algoritmo: é, em geral, uma descrição passo a passo
de como um problema é solucionável. A descrição deve ser finita, e os passos devem ser bem definidos, sem ambiguidades, e executáveis computacionalmente.(Terada)
Instância do problema: Um entrada que satisfaz a quaisquer restrições impostas no enunciado do problema, necessária para se calcular a solução
Correto: Para cada instância do problema, o algoritmo para com saída correta.
Conceitos Um problema pode ser resolvido por diversos
algoritmos
Por exemplo...
O que não quer dizer que ele seja aceitável na prática Entrada Algoritmo 01 Algoritmo 02
10 0.00001s 0.001s
20 0.00002s 1s
30 0.00003s 17.9 minutos
40 0.00004s 12.7 dias
50 0.00005s 35.7 anos
Conceitos Escolhemos um algoritmo para resolver algum problema,
considerando alguns critérios: Corretude Simplicidade do código Consumo de memória Tempo de processamento
Através da análise de algoritmo sabemos a medida de desempenho proporcional ao tempo de execução do algoritmo. Por exemplo, medida de desempenho n = 10s, então n2 = 100s
Questão Os computadores estão em constante evolução, estão
cada dia mais rápidos. Ainda assim, é necessário calcular a complexidade?
Questão Computador A: 1 bilhão de instruções por segundo Computador B: 10 milhões de instruções por segundo Algoritmo 1: 2n2
Algoritmo 2: 50nlogn
Computador A com o Algoritmo 1:
2.(106)2
109= 2000𝑠
Computador B com o Algoritmo 2:
50.106𝑙𝑜𝑔106
107= 30𝑠
Medidas de Complexidade Calcular a quantidade de operações elementares do algoritmo
Adição Subtração Comparação ...
A complexidade é calculada pelo número de vezes que a operação fundamental é realizada.
A medida de complexidade é o crescimento assintótico dessa
contagem de operações.
A complexidade de um algoritmo é inferida de acordo com o tamanho da instância do problema Ex.: Encontrar o elemento máximo de um vetor.
Análise de Complexidade Pior Caso: caracterizado por entradas que resultam
em maior crescimento do número de operações, conforme aumenta o valor de n;
Melhor Caso: caracterizado por entradas que resultam em menor crescimento do número de operações, conforme aumenta o valor de n;
Caso Médio: que retrata o comportamento médio do algoritmo, quando se consideram todas as entradas possíveis e as respectivas probabilidades de ocorrência
Análise de Complexidade A análise de Algoritmo busca:
Corretude: provar que o algoritmo é correto para qualquer instância
Tempo de execução: tempo necessário para executar um algoritmo de entrada n
Espaço da memória: quanto de espaço na memória é necessário para armazenar as estruturas do algoritmo
Questão Enumere cada item de acordo com a complexidade. De
modo, que a função de maior complexidade receberá o maior número.
a) n - ( ) b) n2 - ( )
c) 2n - ( )
d) n.logn - ( ) e) logn - ( ) f) n! - ( ) g) 1 - ( ) h) nn - ( ) i) loglogn - ( )
Questão Considere dois algoritmos A e B com tempo de
execução n2 e n3, respectivamente. Qual deles é o mais eficiente ?
Questão Considere dois algoritmos A e B com tempos de
execução 100n2 e 5n3, respectivamente, qual é o mais eficiente?
Se n < 20, então B é mais rápido. No entanto, para n grande, então A é mais rápido.
Top Related