Algoritmos #08 - Introdução à análise de complexidade
Dentro do universo da programação, é comum encontrar diversos algoritmos que realizam uma mesma função. Porém, apesar do objetivo final ser idêntico, eles são compostos por estruturas e comandos completamente diferentes entre si e, portanto, haverá uma certa discrepância no tempo gasto por cada um durante a execução. Como, na computação, o custo de um algoritmo é diretamente proporcional ao seu tempo de execução, é essencial buscar sempre a criação do código mais eficiente possível. Entretanto, não é viável calcular o tempo exato gasto, pois, ele depende do hardware do computador em que o código será executado e da linguagem de programação utilizada e, portanto, é diferente para cada situação. Nesse contexto, surge a análise assintótica, caracterizada como uma forma de "medir" a eficiência de um algoritmo em um contexto ideal (independente de fatores externos), que será melhor explanada a seguir. Análise assintótica Para medir o custo de execução (ou...