Os Computadores Portáteis
Por: israel felixdavid • 3/12/2019 • Artigo • 707 Palavras (3 Páginas) • 187 Visualizações
Com o objetivo de projetar algoritmos otimizados é importante compreender o conceito de complexidade de algoritmos, através dos métodos de análise é possível medir a eficiência de um algoritmo, assim buscando uma execução eficiente exigindo menos recursos para solução de problemas, em uma análise inicial é necessário compreender que à medida que o tamanho da entrada de dados aumentam, são exigidos mais recursos para a execução desse mesmo algoritmo, e o fato de um algoritmo conseguir resolver um problema, não significa que ele é aplicável, pois o tempo de execução pode ser ineficiente para determinada aplicação, neste caso o estudo da complexidade de algoritmos auxilia na escolha de estruturas eficientes ou adaptações para solucionar o problema da melhor forma possível, por esse motivo é importante desconstruir a ideia de que os hardwares e as linguagens de programações atuais evoluíram de tal forma que não precisamos nos preocupar com o nível de complexidade, pois podemos nos deparar com problemas e entradas com carga de processamento elevada e não conhecer o estudo de complexidade de algoritmos podem impedir a solução de problemas pois a medida que os os hardwares evoluem os problemas se tornam mais complexos sendo necessário buscar um certo equilíbrio.
Avaliação por tempo de execução (posteriori)
Pode ser utilizada para medir o tempo de execução de um algoritmo, porém se quisermos dados para uma análise eficiente, é necessário conhecer a arquitetura ,linguagem e o código utilizado, sendo assim o tempo de execução de um algoritmo pode variar dependendo do hardware utilizado, por esse motivo não é possível extrair o número exato referente a performance de um algoritmo tomando como base o tempo de execução, pois se executarmos este mesmo algoritmo em uma outra máquina teremos um dado completamente diferente, ou seja em situações em que é necessário uma medida genérica (independente do hardware) a avaliação através do tempo de execução não é a melhor opção.
Avaliação por complexidade de algoritmo
A avaliação por complexidade de algoritmo tem como objetivo extrair dados referentes ao esforço computacional e não o tempo de execução, como resultado traz a taxa de crescimento de um algoritmo conforme o tamanho do problema, que por sua vez pode aumentar dependendo do tamanho da entrada, sendo assim pode-se aceitar que o tempo de execução de um algoritmo varia de forma proporcional ao tamanho da entrada.
Para compreender o conceito de complexidade de algoritmos é necessário conhecer os tipos de entradas e como elas se relacionam com a complexidade, as entradas podem ser baseadas em:
Entrada com dados reais: Esse tipo de dado busca compreender o comportamento do algoritmo em uma situação real, compreendendo as adversidades em uma execução rotineira.
Entrada com dados aleatórios: Com esse tipo de dado conseguimos compreender o comportamento do algoritmo em todas as instâncias possíveis, esse dado deve ser utilizado para projetar o tempo médio de execução de um algoritmo.
Entradas com dados perversos: Esse tipo de entrada leva o algoritmo ao pior caso possível, esse dado é muito importante pois através dele conseguimos compreender as possibilidades que um algoritmo nos oferece.
...