ajout d'aperçu des types d'algorithmes

This commit is contained in:
gwen 2017-04-11 16:40:26 +02:00 committed by Benjamin Bohard
parent 5c2ec45681
commit 287dc14656
4 changed files with 59 additions and 4 deletions

View File

@ -0,0 +1,20 @@
Aperçu des algorithmes fondamentaux
===================================
En mathématiques
-----------------
- l'algèbre
- l'arithmétique modulaire
- la géométrie (affine, algébrique, topologique...)
En informatique
----------------
- les algorithmes sur la manipulation des structures de données
Exemple : les algorithmes de tri, de recherche dans un arbre, un graphe...
- les algorithmes de cryptage
- les algorithmes de calculs de dates

View File

@ -11,5 +11,6 @@ Introduction à l'algorithmique
programme programme
fonctions fonctions
control control
apercu
modularite modularite
annexes/index annexes/index

View File

@ -4,6 +4,10 @@ Avant propos
Introduction Introduction
~~~~~~~~~~~~ ~~~~~~~~~~~~
| "Que nul n'entre ici s'il n'est géomètre"
| (Maxime apposée au porche d'entrée de l'École de Platon)
- L'accent est mis sur l'approche **algorithmique scientifique**, dite algorithmique - L'accent est mis sur l'approche **algorithmique scientifique**, dite algorithmique
algébrique. L'algorithmique est un sous-domaine de l'algèbre et des algébrique. L'algorithmique est un sous-domaine de l'algèbre et des
approches modulaires (arithmétique modulaire...) approches modulaires (arithmétique modulaire...)
@ -27,10 +31,29 @@ Introduction
nous évoquerons un panorama des différents langages existants -- historiques et contemporains -- nous évoquerons un panorama des différents langages existants -- historiques et contemporains --
en les comparants les uns aux autres. en les comparants les uns aux autres.
- Durant tout le cours, nous souhaitons proposer une pédagogie par l'exemple, et nous nous - Durant tout le cours, nous souhaitons proposer une pédagogie par l'exemple, et nous
limiterons l'exposé à deux langages d'implémentation des algorithmes : le **Python** pour la programmation limiterons l'exposé à deux langages d'implémentation des algorithmes : le **Python** pour la programmation
impérative, modulaire et objet, et nous évoquerons aussi certains exemples en langage **OCaml** impérative modulaire et objet, et le **OCaml**, car nous évoquerons aussi certains points
à propos de la programmation fonctionnelle, modulaire et générique. de programmation fonctionnelle et modulaire, polymorphe et teintée de généricité.
Intérêt
-------
| "Les dieux ne connaissent pas seulement les mauvaises actions,
| mais encore les mauvaises pensées."
| Thalès de Milet
L'algorithmique en tant que rapport à la vérité,
en tant qu'art de découper un problème complexe en tâches élémentaires,
en tant qu'énoncés de compréhension et de sémantique,
est la seule chose vraiment profonde dans l'informatique. Le reste n'est que 0 ou 1.
Cette notion d'algorithme est profondément enracinée dans le désir humain de
transmettre des méthodes pour comprendre des problématiques,
qu'il s'agisse de procédures scientifiques ou mathématiques, de secrets,
de philosophie ou de divination au sens des anciens Grecs.
De règles linguistiques, aussi, chez les Romains.
Objectifs de ce cours Objectifs de ce cours
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
@ -40,7 +63,7 @@ Il s'agit de :
- maîtriser et concevoir un algorithmes de base, - maîtriser et concevoir un algorithmes de base,
- choisir une représentations appropriée des données, - choisir une représentations appropriée des données,
- décomposer en sous-problèmes et affinements successifs, - décomposer en sous-problèmes et affinements successifs,
- organiser les modules ou fonctions. - organiser les modules et les fonctions.
Le développement raisonné dalgorithmes et leur implantation Le développement raisonné dalgorithmes et leur implantation
permet d'acquérir les qualités suivantes : permet d'acquérir les qualités suivantes :

View File

@ -119,6 +119,17 @@ Algorithme de la longeur d'une liste
Cette fonction est prédéfinie en Ocaml : `List.length` Cette fonction est prédéfinie en Ocaml : `List.length`
Algorithmes de tri
~~~~~~~~~~~~~~~~~~~
On désigne par "tri" l'opération consistant à ordonner un ensemble d'éléments en fonction de clés sur lesquelles est définie une relation d'ordre.
Les algorithmes de tri ont une grande importance pratique.
Ils sont fondamentaux dans certains domaines (exemples : map-reduce en database non relationnelle).
L'étude du tri est également intéressante en elle-même, c'est un des domaines de l'algorithmique très étudié et connu.
Algorithme de tri par insertion Algorithme de tri par insertion
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~