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
- Notion de variable et calculs dans un algorithme
- Conditions Si/Alors et boucles de répétition
- Algorithmes séquentiels et blocs d'instructions de Troisième
- Variables, affectation et types fondamentaux
- Opérateurs arithmétiques entiers et comparaisons en Python
- Instructions conditionnelles if, elif, else
- Boucle bornée for et fonction range
- Boucle non bornée while et recherche de seuil
- Accumulateur et calcul d'une somme ou d'un produit dans une boucle
- Définition et appel de fonctions en Python
- Listes et parcours de séquences en Python
- Recherche du maximum ou du minimum dans une liste en Python
- Simulation d'expériences aléatoires avec random.randint en Python
- Bilan : Synthèse et simulation d'algorithmes en Python