Introduction
Définition,
Le nom algorithme provient du mathématicien Al Khowarizmi qui
vivait à Bagdad au IX-ième siècle. L'Encyclopedia Universalis
donne la définition suivante
Spécification d'un schéma de calcul sous forme d'une suite finie
d'opérations élémentaires obéissant à un enchaînement déterminé.
Un algorithme est donc la composition d'un nombre fini d'opérations dont
chacune est :
- définie de façon rigoureuse et non ambiguë
- effective sur les données adéquates (effectivement réalisable en
un temps fini)
L'algorithmique comprend les trois points suivants.
- Conception de méthodes pour la résolution de problèmes
- Description des données
- Description des méthodes
- Preuve de la correction des méthodes
- Efficacité des méthodes
- Efficacité : temps de calcul, espace nécessaire, …
- Complexité intrinsèque, optimalité
- Solutions approchées
- Implémentation
- Organisation des objets
- Opérations élémentaires
Méthodologie
La conception d'un algorithme passe par les trois étapes suivantes.
- Construction d'un modèle mathématique qui permet de donner un
algorithme informel ou abstrait
- Définition des types de données abstraits et algorithme formalisé
dans un langage de très haut niveau
- Définition des structures de données et programme en Pascal,
C, Java, …
Il faut bien distinguer les trois éléments suivants.
- la spécification d'un algorithme, c'est-à-dire le cahier
des charges du problème à résoudre,
- l'algorithme lui-même, c'est-à-dire comment il résout
le problème,
- l'implémentation de l'algorithme, c'est-à-dire sa réalisation
dans un langage de programmation réel.
Les points suivants sont des éléments de méthodologie
- Programmation structurée
- Modularité
- Programmation fonctionnelle
- Récursivité
- Types de données abstraits
- Programmation orientée objets (Java)
- Réutilisation du code