ajout d'aperçu des types d'algorithmes
This commit is contained in:
parent
5c9ca22877
commit
2786706b0f
|
@ -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
|
|
@ -11,5 +11,6 @@ Introduction à l'algorithmique
|
||||||
programme
|
programme
|
||||||
fonctions
|
fonctions
|
||||||
control
|
control
|
||||||
|
apercu
|
||||||
modularite
|
modularite
|
||||||
annexes/index
|
annexes/index
|
||||||
|
|
|
@ -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é d’algorithmes et leur implantation
|
Le développement raisonné d’algorithmes et leur implantation
|
||||||
permet d'acquérir les qualités suivantes :
|
permet d'acquérir les qualités suivantes :
|
||||||
|
|
|
@ -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
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue