Recherche du maximum ou du minimum dans une liste en Python

Seconde générale · Mathématiques 2nde

À retenir

• Initialiser avec le premier élément : val_max = liste[0], jamais avec 0. • Parcourir tous les éléments et remplacer val_max dès que element > val_max. • Minimum : même algorithme avec val_min et le test element < val_min. • Le résultat est toujours un élément de la liste.

Le cours

Chercher le plus grand (ou le plus petit) élément d'une liste sans la fonction max() est un algorithme classique de parcours : on garde en mémoire le meilleur élément rencontré jusqu'ici et on le compare à chaque nouvel élément. 1. L'algorithme du maximum def maximum(liste): val_max = liste[0] for element in liste: if element > val_max: val_max = element return val_max val_max est initialisé avec le premier élément ; la boucle compare chaque élément à val_max et le remplace s'il est plus grand. À la fin, val_max est un élément de la liste, supérieur ou égal à tous les autres. 2. Méthode : le tableau de suivi Sur [4, 9, 2, 11, 7], on écrit la valeur de val_max après chaque élément examiné : 1. Départ : val_max = 4 ; l'élément 4 ne change rien. 2. 9 > 4 : val_max devient 9 ; puis 2 3. 11 > 9 : val_max devient 11 ; puis 7 La fonction renvoie 11. 3. Minimum et position Pour le minimum, on remplace le test par element < val_min. Pour obtenir la position du maximum, on parcourt les indices : for i in range(len(liste)), et l'on retient l'indice i chaque fois que liste[i] dépasse le maximum provisoire. 4. Attention L'initialisation val_max = 0 est fausse dès que tous les éléments sont négatifs : sur [-5, -12, -3], elle renverrait 0, qui n'est même pas dans la liste.

Dans ce chapitre