Adloun

L'élément majoritaire, en deux passages

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 2 — Recherche séquentielle et dictionnaires

Énoncé

Un élément est majoritaire dans t s'il apparaît strictement plus de fois (où ). Écrire une fonction majoritaire(t) qui renvoie cet élément s'il existe (ou None), en complexité .

Corrigé

def majoritaire(t: list):
    c = {}
    for x in t:
        c[x] = c.get(x, 0) + 1
    
    seuil = len(t) / 2
    for v in c:
        if c[v] > seuil:
            return v
    return None

Le premier passage (comptage) prend opérations. Le second passage (recherche de la clé vérifiant la condition) effectue au plus itérations. La complexité globale est .

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.