Outils pour utilisateurs

Outils du site


itc:tps:tp1:exercice3

Recherche d'un extremum dans une liste de nombres

Exercice 3 du TP 1

On se place dans le cas d'une séquence – list, tuple, strnon vide d'objets que l'on peut comparer.

En Python, on peut bien sur comparer des nombres. On peut également comparer du texte, la comparaison se faisant suivant l'ordre alphabétique. Ainsi "chat" < "lama" est True.

Question 1

On souhaite déterminer l'élément maximum des éléments de la séquence. On peut procéder par recherche séquentielle :

FONCTION maximum
ENTRÉE: séquence non vide d'objets comparables
SORTIE: élément maximum
DÉBUT
     maximum trouvé jusqu'ici est le premier élément de la séquence
     POUR CHAQUE item de la séquence à partir du rang 1 FAIRE
         SI cet item est plus grand que le maximum trouvé ALORS
             le maximum trouvé devient égal à cet élément
         FIN
     FIN
     renvoyer le maximum trouvé
FIN
  1. Implémenter cette fonction.
  2. Écrire une variante qui renvoie, en plus du maximum, la séquence des indices où ce maximum est atteint

Question 2

On cherche maintenant le deuxième maximum, c’est-à-dire, ici, la valeur maximale, une fois que l’on a éliminé les éléments égaux à la valeur maximale entendue comme ci-dessus.

Précondition : La séquence contient au moins deux valeurs distinctes.

Écrire une première fonction deux_maximum qui, pour une séquence L, retourne le couple (max1, max2) tel que :

  • max1 != max2
  • max1 in L et max2 in L
  • pour tout e in L, e ⇐ max1 et si e != max1 alors e ⇐ max2

Question 3

Écrire – si distincte de la première – une deuxième version deux_maximum2 qui respecte l'algorithme suivant.

FONCTION deux_maximum2
ENTRÉE: séquence L d'éléments comparables
        comptant au moins deux éléments distincts
SORTIE: paire (max1, max2), max1 étant le premier maximum et max2 le second
DÉBUT
    initialiser max1 et max2 à L[0], L[1],
    max1 devant être le plus grand des deux et max2 le plus petit
    POUR CHAQUE item de la liste à partir du rang 2 FAIRE
        modifier max1 et max2 selon la valeur de item
    FIN
    renvoyer max1, max2

Question 4

Donnez la complexité des fonctions obtenues en questions 2 et 3 – une seule si vous avez fait deux fois la même chose.

itc/tps/tp1/exercice3.txt · Dernière modification : de goupillwiki