La validité d'un algorithme peut se fonder sur des théorèmes (voir Une preuve sur les nombres premiers
).
Voir le document Qu'est-ce qu'un algorithme ?
Solutiondelaquestion3sur10:Commentsedéfinitlacomplexitéentemps
d'unalgorithmecalculantunrésultatàpartird'unparamètrefourni?
Voici la bonne réponse :
● C'est l'ordre de grandeur du nombre d'opérations de base effectuées lors de l'exécution de
l'algorithme en fonction de la taille de son paramètre d'entrée
La complexité en temps d'un algorithme se mesure en nombre d'opérations élémentaires à effectuer
en fonction de la taille des données d'entrée. Ce nombre est corrélé au temps précis de son exécution sur
machine, tout en étant indépendant du langage de programmation dans lequel il est codé, ainsi que de la
machine sur laquelle il est implanté.
Il est plus facile - et tout aussi pertinent pour l'estimation de la complexité d'un algorithme - de ne pas
calculer le nombre exact d'opérations de base, mais de la situer par rapport à des fonctions de référence,
qui représentent des ordres de grandeurs (log n, n, n (log n), n2, nk, 2n...).
La complexité dépend de la taille du paramètre d'entrée. Par exemple, trier par ordre alphabétique un
ensemble de fiches de 10 noms est plus rapide que trier (selon la même méthode de tri ) un ensemble
de fiches de 1000 noms.
Sur la notion de complexité, voir aussi la conférence de Philippe Flajolet Entre mathématiques et
informatique : l'analyse des algorithmes
Solutiondelaquestion4sur10:Commentpeutontrierparordre
alphabétiqueunfichierde1000noms?
Voici les bonnes réponses :
● Il existe plusieurs algorithmes, dont certains sont plus rapides à exécuter en moyenne
● Aucun algorithme ne peut trier 1000 noms en moins de 10 000 opérations de comparaisons
Il existe de nombreux algorithmes de tri différents.
Certains algorithmes sont meilleurs en moyenne que d'autres, tout en étant moins performants dans les
configurations les plus favorables (fichier déja trié) ou les plus défavorables (fichier de départ trié à