Algorithmes de tri

Tri par sélection, insertion, fusion, rapide.

Se connecter pour contribuerPublié le · Dernière mise à jour le

Algorithmes de tri

I. Tri par sélection

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

Complexité : O(n2)O(n^2) (toujours).

II. Tri par insertion

def tri_insertion(L):
    for i in range(1, len(L)):
        x = L[i]
        j = i
        while j > 0 and L[j-1] > x:
            L[j] = L[j-1]
            j -= 1
        L[j] = x

Complexité : O(n2)O(n^2) pire cas, O(n)O(n) si déjà trié.

III. Tri fusion

Approche diviser pour régner :

def fusion(L):
    if len(L) <= 1: return L
    m = len(L)//2
    G = fusion(L[:m]); D = fusion(L[m:])
    res = []; i = j = 0
    while i < len(G) and j < len(D):
        if G[i] <= D[j]:
            res.append(G[i]); i += 1
        else:
            res.append(D[j]); j += 1
    return res + G[i:] + D[j:]

Complexité : O(nlogn)O(n \log n) garantie.

IV. Tri rapide (Quicksort)

def quicksort(L):
    if len(L) <= 1: return L
    pivot = L[0]
    petits = [x for x in L[1:] if x < pivot]
    grands = [x for x in L[1:] if x >= pivot]
    return quicksort(petits) + [pivot] + quicksort(grands)

Moyenne O(nlogn)O(n \log n), pire O(n2)O(n^2).

V. Comparaison

TriPireMoyenStableSur place
Sélectionn2n^2n2n^2nonoui
Insertionn2n^2n2n^2ouioui
Fusionnlognn\log nnlognn\log nouinon
Rapiden2n^2nlognn\log nnonoui
Tasnlognn\log nnlognn\log nnonoui

Sources et références

Ce cours est rédigé par l'équipe RévisionBac à partir du programme officiel et des sources institutionnelles ci-dessous. Elles permettent de vérifier les définitions, les chiffres et les normes citées.

  1. 1.Programmes et ressources du lycée général et technologiqueÉduscol — Ministère de l'Éducation nationale
  2. 2.Bulletin officiel de l'Éducation nationale (programmes du baccalauréat)education.gouv.fr
  3. 3.Ressources et programme de NSIÉduscol
  4. 4.Documentation du langage PythonPython Software Foundation
  5. 5.Protection des données et RGPDCNIL

Contenu vérifié et mis à jour le 08/08/2026. Les liens renvoient vers les sites officiels des éditeurs cités.

Historique éditorial

Ce chapitre est rédigé et relu par l'équipe RévisionBac, puis enrichi par les contributions validées.

  1. Dernière mise à jour du cours (relecture et enrichissement)
  2. Première publication de la fiche de cours