
Sommaire
2Sommaire ...........................................................................................................................................
2Partager ..............................................................................................................................................
4 Algorithmique pour l'apprenti programmeur .......................................................................................
4But du tutoriel ....................................................................................................................................................................
4Prérequis ...........................................................................................................................................................................
4Historique ..........................................................................................................................................................................
5Partie 1 : Présentation de la notion de complexité algorithmique .......................................................
6Qu'est-ce qu'un algorithme ? ............................................................................................................................................
6Omniprésence des algorithmes ..................................................................................................................................................................................
6Rôle privilégié des ordinateurs ....................................................................................................................................................................................
6Notion de structure de données ..................................................................................................................................................................................
7Les grenouilles partent en vacances ................................................................................................................................
8Situation ......................................................................................................................................................................................................................
8Les deux possibilités ...................................................................................................................................................................................................
8Tous les ans : choix personnalisé ...............................................................................................................................................................................
9Cette année : choix de groupe ....................................................................................................................................................................................
9Comparaison ...............................................................................................................................................................................................................
11La notion de complexité ...................................................................................................................................................
11Correction de l'algorithme ..........................................................................................................................................................................................
11Complexité .................................................................................................................................................................................................................
12Mesure 'asymptotique' ...............................................................................................................................................................................................
12Notation "grand O" ....................................................................................................................................................................................................
13Complexité en temps, complexité mémoire ..............................................................................................................................................................
13Complexité dans le pire des cas ...............................................................................................................................................................................
15Un peu de pratique ..........................................................................................................................................................
15Qu'est-ce qu'on attend de vous ? ..............................................................................................................................................................................
15Chercher le plus grand / petit élément ......................................................................................................................................................................
16Trouver les éléments uniques ...................................................................................................................................................................................
16Solution proposée .....................................................................................................................................................................................................
17Complexité ................................................................................................................................................................................................................
18Trouver les éléments uniques : autre solution ...........................................................................................................................................................
20Partie 2 : Premiers exemples de structures de données et d'algorithmes courants ..........................
20Notions de structures de données : tableaux et listes chaînées .....................................................................................
20Définition ...................................................................................................................................................................................................................
20Tableaux ....................................................................................................................................................................................................................
21Listes .........................................................................................................................................................................................................................
22Ajout / retrait, taille, accès à un élément ...................................................................................................................................................................
22Ajout / Retrait .............................................................................................................................................................................................................
24Taille ..........................................................................................................................................................................................................................
24Accès à un élément ...................................................................................................................................................................................................
25Concaténation, filtrage ..............................................................................................................................................................................................
25Concaténation ...........................................................................................................................................................................................................
27Filtrage ......................................................................................................................................................................................................................
28Synthèse ...................................................................................................................................................................................................................
28Opérations .................................................................................................................................................................................................................
28Conversions ..............................................................................................................................................................................................................
29Attention aux langages de moches ..........................................................................................................................................................................
30Une classe d'algorithme non naïfs : diviser pour régner .................................................................................................
30Gagner au jeu du 'Plus ou Moins' ..............................................................................................................................................................................
30Dichotomie : Recherche dans un dictionnaire ...........................................................................................................................................................
31Calcul de la complexité .............................................................................................................................................................................................
32Trouver un zéro d'une fonction ..................................................................................................................................................................................
35Diviser pour régner : exponentiation rapide ..............................................................................................................................................................
37Introduction au problème du tri .......................................................................................................................................
37Formuler le problème du tri .......................................................................................................................................................................................
37Question de la structure de donnée ..........................................................................................................................................................................
37Tri par sélection .........................................................................................................................................................................................................
38Complexité ................................................................................................................................................................................................................
39Implémentation du tri par sélection ...........................................................................................................................................................................
39Pour une liste ............................................................................................................................................................................................................
40Pour un tableau .........................................................................................................................................................................................................
42Comparaison .............................................................................................................................................................................................................
42Tri par insertion .........................................................................................................................................................................................................
42Le retour du "diviser pour régner" : Tri fusion ............................................................................................................................................................
43Algorithme .................................................................................................................................................................................................................
44Implémentation avec des listes .................................................................................................................................................................................
48Implémentation avec des tableaux ............................................................................................................................................................................
49Complexité ................................................................................................................................................................................................................
50Efficacité en pratique .................................................................................................................................................................................................
52Partie 3 : Quelques autres structures de données courantes ...........................................................
53Piles et files .....................................................................................................................................................................
53Concept .....................................................................................................................................................................................................................
2/70