Algorithme pour debutant
L’ALGORITHMIQUE
INF 102
NOTES DE COURS
M. DELEST
2007
Université Bordeaux 1
INF102 - 2007
2
INF102 - 2007
Introduction
Notion d'algorithme
Notion de Complexité
Langage de description d'algorithmes
1. Notion d'algorithme
Définition 1.1. Un algorithme est une procédure de calcul bien définie qui prend en entrée un ensemble de valeurs et qui délivre en sortie un ensemble de valeurs.
Exemple 1.1
Problème : Trier une suite de nombres entiers dans l'ordre croissant.
Entrée : Suite de n nombres entiers (a1, a2, ...an)
Sortie : Une permutation de la suite donnée en entrée (a'1, a'2, ...a'n) telle que a'1≤a'2≤, ...≤a'n.
A partir de la suite (6,9,2,4), un algorithme de tri fournira le résultat
(2,4,6,9).
Définition 1.2.Une valeur particulière de l'ensemble des valeurs données en entrée est appelée instance du problème.
Exemple 1.1 (suite)
La valeur (6,9,2,4) est une instance du problème.
Définition 1.3.Un algorithme est correct si pour toute instance du problème il se termine et produit une sortie correcte.
Les algorithmes peuvent être spécifiés en langage humain ou tout langage informatique. Dans ce qui suit nous utiliserons un langage proche du langage naturel. Nous donnerons une implémentation en Python (voir cours MISMI MIS
102)
Définition 1.4.Une heuristique est une procédure de calcul correcte pour certaines instances du problème (c'est à dire se termine ou produit une sortie correcte).
Ce cours n'aborde pas les heuristiques.
Pour qu'un algorithme puisse être décrit et s'effectue, les données d'entrées doivent être organisées.
Définition 1.5.Une structure de données est un moyen de stocker et d'organiser des données pour faciliter leur stockage, leur utilisation et leur modification.
De nombreux problèmes nécessitent des algorithmes :
Bio-informatique
Moteur de recherche sur Internet
Commerce électronique
3
INF102 - 2007
Affectation de tâches
Définition 1.6. L'efficacité d'un