ProgresSchool
Faire le quiz
NSI1ère

Algorithmes : Complexité et Fondamentaux

Fiche de révision complète pour maîtriser Algorithmes : Complexité et Fondamentaux en NSI — méthode, exemples et pièges à éviter.

La complexité mesure l’efficacité d’un algorithme (temps/mémoire).
Big O simplifie l’analyse : O(1), O(log n), O(n), O(n²) sont les plus courants.
Recherche linéaire = O(n), dichotomique = O(log n) (liste triée requise).
Tri par sélection = O(n²), mais d’autres tris (ex: rapide) sont plus efficaces.
Choisir l’algorithme adapté à la taille des données pour optimiser les performances.

Algorithmique — Complexité et algorithmes fondamentaux

1. Notion de complexité

La complexité mesure l’efficacité d’un algorithme en fonction de la taille des données. On distingue :

  • Complexité temporelle : temps d’exécution (ex: O(n) pour une boucle simple).
  • Complexité spatiale : mémoire utilisée (ex: O(1) pour une variable).

Exemple : Un tri par sélection a une complexité O(n²) car il compare chaque élément à tous les autres.

2. Notations asymptotiques

On utilise les notations Big O pour simplifier l’analyse :

  • O(1) : temps constant (ex: accès à un tableau).
  • O(log n) : temps logarithmique (ex: recherche dichotomique).
  • O(n) : temps linéaire (ex: parcours d’une liste).
  • O(n²) : temps quadratique (ex: tri bulle).

Règle : On garde le terme dominant (ex: O(n² + n) devient O(n²)).

3. Algorithmes fondamentaux

a. Recherche linéaire

Parcours séquentiel d’une liste. Complexité : O(n).

def recherche_lineaire(liste, x):
    for i in range(len(liste)):
        if liste[i] == x:
            return i
    return -1

b. Recherche dichotomique

Nécessite une liste triée. Complexité : O(log n).

def recherche_dichotomique(liste, x):
    gauche, droite = 0, len(liste)-1
    while gauche <= droite:
        milieu = (gauche + droite) // 2
        if liste[milieu] == x:
            return milieu
        elif liste[milieu] < x:
            gauche = milieu + 1
        else:
            droite = milieu - 1
    return -1

c. Tri par sélection

Trouve le minimum à chaque itération. Complexité : O(n²).

def tri_selection(liste):
    for i in range(len(liste)):
        min_idx = i
        for j in range(i+1, len(liste)):
            if liste[j] < liste[min_idx]:
                min_idx = j
        liste[i], liste[min_idx] = liste[min_idx], liste[i]

4. Choix de l’algorithme

  • Petites données : Un algorithme simple (ex: tri bulle) peut suffire.
  • Grandes données : Privilégier des algorithmes efficaces (ex: tri rapide O(n log n)).

Exemple : Pour trier 1 million d’éléments, un O(n²) sera lent, un O(n log n) sera optimal.

5. Optimisation

  • Éviter les boucles imbriquées : Réduire la complexité (ex: passer de O(n²) à O(n)).
  • Utiliser des structures adaptées : Dictionnaires pour des recherches rapides (O(1)).

Cas pratique : Stocker des données dans un dictionnaire pour des accès instantanés.

Sans compte · Gratuit

Teste-toi sur Algorithmes : Complexité et Fondamentaux

Réponds directement ici. La correction s'affiche aussitôt, avec la formule et le piège classique à éviter.

Programme officielAucune inscriptionCorrection immédiate
NSIPremière
Question 1
L'astronome Marc doit convertir la distance entre la Terre et Mars, donnée en binaire 11010010211010010_2, en décimal pour calibrer les communications avec le rover Perseverance. Quel est l'entier décimal correspondant ?

Aucun compte requis — réponds, la correction s'affiche aussitôt.

Ta progression est déjà comptée dans ce navigateur. Crée un compte gratuit pour la retrouver sur tes autres appareils.

Questions fréquentes

Algorithmes : Complexité et Fondamentaux : à quel niveau ce cours correspond-il ?

Cette fiche couvre le programme de NSI en Première, d'après le Bulletin Officiel de l'Éducation nationale.

Comment utiliser cette fiche de révision ?

Lis-la en entier une première fois sans chercher à retenir, puis relis uniquement la méthode et le piège classique. Enchaîne ensuite sur le quiz en bas de page : c'est en te trompant sur une question, et en lisant pourquoi, que la notion se fixe. Relire une fiche trois fois de suite donne l'impression de savoir, sans le savoir.

Faut-il créer un compte pour lire cette fiche ou faire le quiz ?

Non. Les quiz, les corrections détaillées et les fiches de révision sont accessibles sans créer de compte et sans donner d'adresse e-mail. Le compte gratuit sert uniquement à conserver la progression d'un appareil à l'autre.

Peut-on imprimer cette fiche ?

Oui. Utilise la fonction d'impression de ton navigateur (Ctrl+P, ou Cmd+P sur Mac). La fiche est conçue pour rester lisible sur papier.

Fiche alignée sur le programme officiel de l'Éducation nationaleToutes les fiches →

Programme en vigueur — arrêtés du 17 janvier 2019, applicable en Première depuis la rentrée 2019. Voir le texte

Signaler une erreur