Algorithmes de base à connaître

Voici une liste des algorithmes "de base" à connaître. Pour chaque algorithme, vous avez sa version en pseudo langage, en Java, et un exemple d'utilisation dans un fichier (si vous voulez tester le code, collez-le dans un fichier Main.java). Pour vous entrainer, vous pouvez essayer de convertir par vous-même l'algorithme pseudo-langage en Java, et essayez d'exécuter par vous-même le programme de test donné, ligne par ligne, afin de voir comment l'algorithme fonctionne (avec une feuille, un crayon, vous dessinez chaque variable, et vous voyez comment chaque ligne de code influe sur ces variables.

Permutation de variables

Le but est de permuter les valeurs de deux variables a et b, en utilisant une troisième variable temporaire.

Cliquez ici pour afficher la version pseudo-langage.

Cliquez ici pour un fichier de test complet.

Affichage d'un tableau

Pour afficher un tableau, on a besoin du tableau en question (appelons-le T) et, dans certains langages, de la taille du tableau (en Java, on peut, à partir du tableau seul, connaître sa taille, mais dans d'autres langages comme le C, on ne peut pas, il faut donc conserver la taille du tableau dans une variable). On parcourt le tableau pour l'afficher case par case.

Cliquez ici pour afficher la version pseudo-langage.

Cliquez ici pour la version Java.

Cliquez ici pour un fichier de test complet.

Calcul de la moyenne des éléments d'un tableau

On parcourt le tableau T pour faire la somme des tous ses éléments, et à la fin, on divise par le nombre d'éléments. Attention, en Java, il faut calculer la moyenne sur un float ou un double.

Cliquez ici pour afficher la version pseudo-langage.

Cliquez ici pour la version Java.

Cliquez ici pour un fichier de test complet.

Recherche du plus grand élément d'un tableau

On commence par poser comme plus grand élément le premier élément du tableau. On parcourt tout le tableau T, et dès que l'on tombe sur une case contenant un élément plus grand que notre plus grand élément, on met à jour notre plus grand élément.

Cliquez ici pour afficher la version pseudo-langage.

Cliquez ici pour la version Java.

Cliquez ici pour un fichier de test complet.

Recherche de la position du plus grand élément d'un tableau

Pareil que précédemment, si ce n'est que l'on s'intéresse cette fois-ci à la position (et non pas la valeur) du plus grand élément du tableau T.

Cliquez ici pour afficher la version pseudo-langage.

Cliquez ici pour la version Java.

Cliquez ici pour un fichier de test complet.

Trier un tableau - méthode du tri à bulles

On veut trier les éléments d'un tableau, du plus petit au plus grand. Pour ce faire, on parcourt d'abord tout le tableau T et, pour chaque case et sa voisine, si les deux cases ne sont pas de le bon ordre, on permute leur valeur. A la fin du premier parcours, on est sûr que le plus grand élément du tableau est placé à la fin, mais le tableau n'est pas trié.

On refait alors un second parcours, avec les mêmes règles, en ignorant cette fois-ci la dernière case du tableau (car la valeur dans cette case est bien placée, et la parcourir ne changera rien si ce n'est perdre du temps). A la fin de ce parcours, un second élément du tableau est bien placé (le second plus grand élément du tableau est venu se placer à l'avant dernière case).

En répétant cette opération autant de fois qu'il n'y a des cases dans le tableau, on aura trié le tableau. On utilisera une variable limite qui sera placée, au départ de l'algorithme, à l'avant dernière case du tableau : le parcours ne devra pas dépasser limite, et à chaque tour, on reculera cette limite.

Cliquez ici pour afficher la version pseudo-langage.

Cliquez ici pour la version Java.

Cliquez ici pour un fichier de test complet.

Trier un tableau - méthode du tri par sélection

C'est la méthode de tri la plus "naturelle". On parcourt le tableau T à la recherche du plus grand élément, et on permute la dernière case du tableau avec la case contenant le plus grand élément. On recommence une seconde fois en ignorant la dernière case du tableau (où l'on a déjà placé le plus grand élément) : on récupère alors le second plus grand élément du tableau, que l'on place à l'avant dernière case du tableau. On recommence avec le troisième plus grand élément, etc.

En répétant cette opération autant de fois qu'il y a de cases dans le tableau, on est sûr de trier le tableau. On utilisera la fonction position_plus_grand_element_limitee, qui est une modification de la fonction position_plus_grand_element vue précédemment : au lieu de rechercher la position du plus grand élément du tableau, on recherche la position du plus grand élément du tableau situé entre la case 0 et une certaine limite.

A chaque tour, on recherchera la position du plus grand élément du tableau situé situé entre la case 0 et la limite (qui est la variable i). Au début, i (la limite) est égale à la dernière case du tableau, puis, à chaque tour, on recule i. A chaque fois, on place le plus grand élément ainsi trouvé à la case i.

Cliquez ici pour afficher la version pseudo-langage.

Cliquez ici pour la version Java.

Cliquez ici pour un fichier de test complet.