Algorithmes

Un algorithme est un processus permettant de donner une réponse à un problème, par étapes.
On évalue la Complexité d’un algorithme en calculant le nombre potentiel d’étapes avant la résolution, en fonction du volume de données de départ. Plus ce nombre est élevé, plus l’algorithme est complexe.

Un algorithme est donc une méthode de calcul. Par exemple, la recherche du PGCD (Plus Grand Commun Diviseur) est un algorithme que l’on apprend à l’école primaire.

Pseudo-code et calcul du PGCD

October 30th, 2009

Dans cet article, qui fait partie d’une série sur les algorithmes usuels en PHP, nous verrons comment rédiger du pseudo-code pour modéliser nos fonctions PHP. L’algorithme présenté n’est pas là en raison de sa surpuissance ou de son utilité (pas flagrante dans la vie courante… ou du moins pas dans la mienne), mais simplement parce qu’il est facile à comprendre. Merci :)

Le “Plus Grand Commun Diviseur” est le nombre entier maximal qui divise deux autres entiers (deux, ou plus!). Par exemple, le PGCD de 30 et 12 est 6: il n’y a aucun nombre entier (integer) supérieur à 6 qui puisse diviser à la fois 12 et 30. Pour calculer le PGCD, théoriquement, on décompose chaque entier en produit de nombres premiers. Ca donne, pour 30 : 2×3x5 et pour 12 : 2×2x3. Quand on prend les facteurs en commun dans les deux expressions, on a bien 3×2 = 6.
Read more…

Algorithmes , ,

Le tri bulle, ou tri par propagation

October 29th, 2009

(en anglais: bubble sort)

Le tri bulle est un très bon algo au point de vue didactique mais mauvais en termes mathématiques (complexité trop grande). Son but est de trier une liste de valeurs pour la renvoyer en ordre croissant. Pour cela, l’algo parcours les éléments de la liste deux par deux, et les classe en ordre croissant (il les permute si le 2e élément est le plus petit). Une fois la liste finie, le tri-bulle recommence. Lorsqu’un parcours a été fait entièrement sans avoir besoin de faire une permutation, le tri est fini.
Read more…

Algorithmes , , ,