== Préambule ==
Ce cours est écrit à l'aide d'un pseudo-code. Gardez à l'esprit que ce choix est fait pour apprendre plus rapidement la logique de l'algorithmique sans avoir comme contrainte d'écrire dans un langage de programmation. Par conséquent, chacun peu avoir son propre pseudo code. Ce qui est important, c'est surtout la logique derrière l'algorithme, et la façon dont on transmet une idée à une autre personne.
Il est recommandé de ne regarder la solution proposée qu'en dernier recours. La bonne façon d'apprendre l'algorithmique est d'essayer par soi-même. Il n'est pas possible d'apprendre la logique informatique en la recopiant, ni en l'apprenant par cœur. Il est donc primordial d'effectuer l'ensemble des exercices pour que votre intuition se forme petit à petit à l'algorithmique. Il est donc fortement recommandé d'essayer par vous-même, quitte à devoir le refaire à plusieurs reprises, d'effectuer un exercice. Il est également possible d'effectuer ces exercices à l'aide de du langage de programmation de votre choix.
== Table des matières : ==
# [[ algorithmique/intro/ | Introduction à l'algorithmique ]]
## [[ algorithmique/intro/exo/ | Exercices introductifs ]]
# [[ algorithmique/conditions/ | La structure conditionnelle ]]
## [[ algorithmique/conditions/exo/ | Exercices avancés sur les structures conditionnelles ]]
# [[ algorithmique/loop | Les boucles ]]
## [[ algorithmique/loop/for/ | Les itérations à bornes définies ]]
## [[ algorithmique/loop/while/ | La boucle tant que ]]
## [[ algorithmique/loop/dowhile/ | La boucle répéter ... tant que ]]
# [[ algorithmique/automate/ | Les automates d'états finis ]]
# [[ algorithmique/fonction/ | La découpe de problèmes en sous problèmes ]]
## [[ algorithmique/fonction/exo/ | Exercices sur les procédures et les fonctions ]]
## [[ algorithmique/structures/ | Les structures de données ]]
## [[ algorithmique/complexity | La complexité d'un algorithme ]]
# [[ algorithmique/tableaux/ | Les tableaux à une dimension ]]
## [[ algorithmique/tableaux/exo/ | Exercices avancés sur les tableaux ]]
## Les algorithmes de recherche
## Les algorithmes de tri
# La gestion des ensembles
## Les ensembles non-triés
## Les ensembles triés
# Les files d'attente et les piles.
# Les tableaux à deux dimensions.
# La récursivité
# Les pointeurs
# Les structures avancées
## Les listes chainées
## Les arbres
## Les tables de hachage
## Les skip-list
== Références : ==
- [[ https://www.oreilly.com/library/view/mastering-algorithms-with/1565924533/ | Mastering Algorithms with C - Kyle Loudon ]]
- [[ http://pise.info/algo/index.htm | Algorithmique et programmation pour non-matheux ]]
- [[ https://books.google.be/books/about/Data_Structures_and_Algorithms_in_Java.html?id=UqmYAgAAQBAJ&source=kp_cover&redir_esc=y | Data Structures and Algorithms in Java ]]
- [[ https://hal.archives-ouvertes.fr/cel-01176119v2/document | Algorithmique & programmation en langage C - vol.1 ]]
- [[ https://www.oreilly.com/library/view/algorithms-in-a/9780596516246/ | Algorithms in a Nutshell ]]