Como entender algoritmos

Um algoritmo é simplesmente um conjunto de regras a seguir em uma situação específica. Os seres humanos usam algoritmos todo o tempo: por exemplo, quando sair de casa você pode seguir um algoritmo que poderia ser expressa como "Verifique se o céu estiver grisalhos Se sim, levar guarda-chuva. Verifique se o sol shining- se Sim, dê óculos de sol. Sair de casa." Todos os aplicativos do computador resumem-se a um dos mais algoritmos, cada um dos quais realiza uma determinada tarefa.

Características de algoritmos

  • O ponto de definição de um algoritmo é que ele não deixa espaço para a subjetividade ou julgamento. Um algoritmo manipula dados e toma medidas, resultando em uma forma fixa de acordo com o seu conjunto de regras. Na sua forma mais pura, sempre que você colocar as mesmas entradas em um algoritmo que você vai obter o mesmo resultado. Um computador usando um algoritmo tem a vantagem sobre os seres humanos, em que ele sempre vai levar a cabo as acções relevantes corretamente e seres humanos rapidamente- têm a vantagem de que eles podem alterar e até mesmo abandonar algoritmos de se fazer isso é vantajoso em uma situação particular - uma habilidade você poderia descrever como "senso comum."

comparando Algoritmos



  • Assumindo um algoritmo está corretamente projetado para dar o resultado desejado em qualquer situação particular, o principal ponto de comparação entre dois resultados é a velocidade. O site Topcoder observa que os algoritmos são normalmente avaliado com base no tempo que seria necessário para realizar uma determinada tarefa com o conjunto de entradas que torna o processo mais complicado e demorado. Por exemplo, ao tentar corresponder um pedaço de dados com algo em uma longa lista, o algoritmo poderia apenas verificar a lista um item de cada vez. No entanto, a melhor solução é colocar a lista em ordem, como alfabética ou numérica, e depois comparar os dados com a entrada do meio e ver se é "superior ou inferior." Usando este resultado, o algoritmo pode eliminar metade das entradas como não-partidas imediatamente, em seguida, repita o processo até encontrar uma correspondência, provavelmente em muito menos etapas do que a verificação da lista na íntegra.

aproximações & heurísticas

  • Alguns problemas são particularmente difícil para um algoritmo para resolver. Um exemplo clássico é o cenário de um caixeiro-viajante que precisa visitar várias cidades e encontrar a rota com o tempo total de viagem mais curto. O grande número de opções possíveis torna esta uma tarefa tão complicada que levaria um algoritmo muito tempo para explorar todas as possibilidades e chegar com a resposta perfeita. Em vez disso, a resposta é espelhar o comportamento humano, tendo a primeira solução possível que atenda um nível aceitável de variação da rota ideal - em outras palavras, a primeira resposta que é bom o suficiente, ao invés do que perfeito. Este conceito de utilização de algoritmos para obter um resultado que favorecem aspectos práticos sobre perfeição às vezes é conhecido como análise heurística.

Chave para a compreensão

  • Jonathan Cutrell, diretor de tecnologia da Whiteboard, argumenta que simplesmente aprender o código necessário para escrever um algoritmo em uma linguagem de programação particular não é suficiente para obter os melhores resultados. Em vez disso os programadores precisam ter o tempo para compreender a finalidade de cada componente do código de um algoritmo, concentrando-se em como e porque, em vez de apenas o que. Esta abordagem vai ajudar a adaptar e melhorar algoritmos para situações particulares. Cutrell regista também a importância de compreender como um algoritmo em particular interage com outros elementos de software, tais como aplicações e até mesmo um sistema operacional. Estas interações podem mudar a abordagem mais eficiente para um algoritmo de comparação com a abordagem você levaria ao projetar-lo isoladamente.

Referências

recursos

  • Crédito da foto Anyaberkut / iStock / Getty Images
De esta maneira? Compartilhar em redes sociais:

LiveInternet