Comment comprendre les algorithmes

<div itemprop="description" class="intro marginTop" data-module="article-intro">

Un algorithme est simplement un ensemble de règles à suivre dans une situation spécifique. Les humains utilisent des algorithmes tout le temps: par exemple, au moment de quitter la maison, vous pouvez suivre un algorithme qui pourrait être exprimée en "Vérifiez si le ciel est gris- Si oui, prenez parapluie. Vérifiez si le soleil shining- si oui, prendre des lunettes de soleil. Quitter la maison." Toutes les applications informatiques se résument à l`un des plusieurs algorithmes, dont chacun porte une tâche particulière.

Caractéristiques des algorithmes

  • Le point d`un algorithme définissant est qu`il ne laisse pas de place à la subjectivité ou de jugement. Un algorithme gère les données et prend des mesures résultant d`une manière fixe en fonction de son ensemble de règles. Dans sa forme la plus pure, chaque fois que vous mettez les mêmes entrées dans un algorithme, vous obtiendrez le même résultat. Un ordinateur en utilisant un algorithme a l`avantage sur les humains en ce qu`il sera toujours mener les actions pertinentes correctement et les humains rapidement- ont l`avantage en ce qu`ils peuvent modifier et même abandonner des algorithmes si cela est avantageux dans une situation particulière - une compétence vous pourriez décrire comme "bon sens."

Comparaison Algorithmes




  • En supposant un algorithme est correctement conçu pour donner le résultat souhaité dans une situation donnée, le principal point de comparaison entre les deux résultats est la vitesse. Le site Topcoder note que les algorithmes sont normalement évalués en fonction du temps qu`il faudrait pour mener à bien une tâche particulière avec l`ensemble des entrées qui rend le processus le plus compliqué et prend du temps. Par exemple, en essayant de faire correspondre un morceau de données avec quelque chose dans une longue liste, l`algorithme pourrait simplement vérifier la liste un élément à la fois. Cependant, une meilleure solution est de mettre la liste dans l`ordre, comme alphabétique ou numérique, puis de comparer les données avec l`entrée du milieu et voir si elle est "supérieur ou inférieur." En utilisant ce résultat, l`algorithme peut éliminer la moitié des entrées en tant que non-matches immédiatement, puis répétez le processus jusqu`à ce qu`il trouve une correspondance, probablement dans beaucoup moins d`étapes que la vérification de la liste complète.

Approximations & heuristique

  • Certains problèmes sont particulièrement difficiles pour un algorithme à résoudre. Un exemple classique est le scénario d`un vendeur ambulant qui a besoin de visiter plusieurs villes et de trouver la route la plus courte durée totale du voyage. Le nombre d`options possibles rend ce une telle tâche compliquée que cela prendrait un algorithme trop long pour explorer toutes les possibilités et de trouver la réponse parfaite. Au lieu de cela, la réponse est de refléter le comportement humain en prenant la première solution possible qui répond à un niveau acceptable de variation par rapport à l`itinéraire optimal - en d`autres termes, la première réponse qui est assez bon, plutôt que parfait. Ce concept d`utiliser des algorithmes pour obtenir un résultat qui favorisent pratiques sur la perfection est parfois connu comme l`analyse heuristique.

Clé pour comprendre

  • Jonathan Cutrell, directeur de la technologie au Whiteboard, fait valoir que l`apprentissage tout simplement le code nécessaire pour écrire un algorithme dans un langage de programmation particulier ne suffit pas d`obtenir les meilleurs résultats. Au lieu de cela les programmeurs ont besoin de prendre le temps de comprendre le but de chaque composant du code de un algorithme, en se concentrant sur le comment et pourquoi plutôt que de simplement What. Cette approche permettra d`adapter et d`améliorer les algorithmes pour des situations particulières. Cutrell note également l`importance de comprendre comment un algorithme particulier interagit avec d`autres éléments logiciels tels que les applications et même un système d`exploitation. Ces interactions peuvent changer l`approche la plus efficace pour un algorithme par rapport à l`approche que vous prenez lors de la conception dans l`isolement.

Les références

Ressources

  • Crédit photo anyaberkut / iStock / Getty Images

AUTRES

Comment diviser plus vite фото

Comment diviser plus vite

La plupart des gens ont appris une manière compliquée et prend du temps à faire la division longue, développé par…