Exercice — dans l'esprit des sujets d'informatique
On doit ordonner un petit tableau de caractères (ou d'entiers) dans l'ordre croissant par le tri par insertion.
- Écrire l'algorithme du tri par insertion croissante sur
T[1..n]. - Appliquer à
T = [D, B, A, C](indices 1..4) : montrer le tableau après l'insertion de chaque élément (passe par passe). - Comparer en une phrase le nombre de comparaisons au pire avec le tri à bulles (même ordre de grandeur).
Voir la correction commentéeAprès avoir posé votre démarche
1. Tri par insertion.Pour i de 2 à n faire
x ← T[i] ; j ← i-1
TantQue (j ≥ 1) et (T[j] > x) faire
T[j+1] ← T[j] ; j ← j-1
FinTantQue
T[j+1] ← x
FinPour
2. Départ [D,B,A,C].
- i=2, x=B → [B,D,A,C]
- i=3, x=A → [A,B,D,C]
- i=4, x=C → [A,B,C,D]
Le tableau est trié croissamment.
3. Au pire, insertion et bulles font comparaisons (et décalages/échanges). L'insertion est souvent meilleure sur données presque triées.