A Introduction `
a l’algorithmique
1. Exprimer la fonction n4−128 ∗n3+log2(n)en notation de Landau
2. Des deux algorithmes suivants lequel a la plus grande complexit´e?
Algorithme A a une complexit´e en O(log2(n3))
Algorithme B a une complexit´e en O(log2(n))
3. On cherche `a traiter des informations sur les communes de France. Deux algorithmes
sont propos´es :
Algorithme A a une complexit´e en O(n.log2(n))
Algorithme B a une complexit´e en O(n2)
Il s’av`ere que B est plus rapide que A. Comment est-ce possible? Serait-ce le cas sur un
ensemble plus large de communes?
4. Proposer un algorithme dit “du champion” qui trouve la plus petite valeur d’un tableau.
Calculer sa complexit´e.
5. Il est bien connu que pour ´echanger les valeurs de deux variables, il faut une troisi`eme
variable interm´ediaire. Cependant, pour les donn´ees num´eriques enti`eres, il existe un
moyen de ne pas recourir `a une variable suppl´ementaire. Comment faire? Est-ce que ce
“truc” diminue le coˆut de l’op´eration?
6. ´
Ecrire un algorithme qui, ´etant donn´e un tableau d’entiers tab, recherche la position de
la premi`ere case contenant 0 (soit k l’indice de cette case), et qui affiche le contenu des
cases de k`a 1 `a rebours. Calculer le coˆut en temps de cet algorithme.
7. Proposer un algorithme qui d´ecide si un nombre entier est premier (i.e n’a pas d’autre
diviseur que 1 et lui-mˆeme). Comment caract´eriser le meilleur cas, le pire cas? Quelle
est la complexit´e de votre algorithme? Essayer plusieurs solutions.
8. Comment peut-on modifier la plupart des algorithmes pour avoir un bon temps de calcul
dans le meilleur cas?
9. On cherche `a ´evacuer les lignes en double dans un tableau de chiffres. Proposer un algo-
rithme pour rechercher les lignes en doubles et les supprimer. Quelle est la complexit´e
de cet algorithme dans le meilleur des cas? Dans le pire des cas?
1