calcul asymptotyque Flashcards
Quelles propriétés possède un algorithme? (5)
–doit être correct; – doit être composé d’un ensemble d’opérations concrètes; – ne doit pas avoir d’ambigüité dans les opérations; – doit être composé d’un nombre fini d’étapes; – doit terminer.
V ou F
Il ne peut y avoir qu’un seul algorithme pour résoudre un problème donné?
F
Quelles sont les spécification d’un organigramme? (2)
– Exprime un algorithme en utilisant un ensemble de
figures géométriques décrivant les différentes étapes de
l’algorithme.
– Cette représentation n’est presque plus utilisée.
Quelles sont les spécification d’un pseudocode? (2)
– Mélange d’instructions de type « langage de
programmation » et de langage naturel
(français,anglais,…)
– Notation utilisée dans ce cours:
• Structures de contrôle : pour, tant que, si
• Assignation est représentée par un =
• Égalité représentée par ==
Quelles sont les spécification d’un programme? (3)
– Dépend du langage de programmation
– Dépend des choix d’implémentation
– Est souvent optimisé, donc plus difficile à
comprendre
Quelles sont les spécification d’un algorithme? (4)
Algorithme
– Ne contient aucun détail d’implémentation
– Ne contient pas de vérification des variables
d’entrées
– Indépendant du contexte d’implémentation (OS,
langage)
– Plus facile à comprendre
Quelle est l’utilité d’un algorithme? (5)
Permet de prouver l’exactitude d’une solution
Permet de déterminer les détails d’implémentation
Permet d’estimer le temps de réponse et la mémoire
de travail utilisée
Permet de séparer le problème en plusieurs sousproblèmes
Fait office de documentation
Pourquoi voudrait-on choisir l’algorithme le plus efficace? (2)
– Au point de vue de la vitesse d’exécution
– De la quantité de mémoire de travail utilisé
Qu’est qui entre en ligne de compte pour un algorithme?
La simplicité
Le temps d’exécution varie grandement d’un
ordinateur à un autre et même d’une exécution à
l’autre. Quel facteurs peuvent influencé le
temps d’exécution d’un algorithme? (3)
- Le type d’architecture de la machine
- L’implémentation
- Le multitâche
Algorithme(T[1..n])
- d = ∞
- pour i = 1 à n
- pour j = 1 à n
- si i ≠ j et |T[i] – T[j]| < d
- d = |T[i] – T[j]|
- retourner d
Que fait cet algorithme?
Combien de fois chaque ligne est exécutée?
pour réponse voir dia 25 à 28 du cours 1
quels sont les avantage et désavantage de l’Analyse détaillée de l’algorithme et de l’Analyse asymptotiquement du
comportement de l’algorithme lorsque le(s)
paramètre(s) de l’algorithme tend(ent) vers
l’infini
Analyse détaillée d’un algorithme:
– Avantage :Très précise
– Désavantage : Long à calculer
Analyser asymptotiquement
– Avantage: Facile à calculer
– Désavantage: Moins précis
Que détermine la notation O et quel est sa définition formelle?
Détermine une borne supérieure
f(n) = O(g(n)) s’il existe deux constantes positives
n0 et c tel que f(n) <= cg(n) pour tout n>n0
VOIR DIA 32?
IMPORTANT??
Que cherche-t-on avec une Analyse d’un algorithme?
Cherche une fonction simple qui décrit le comportement de l’algorithme dans le pire cas.
– Exemples : O(n), O(n2), O(lg n)