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 (esprit i-s1-01 : « trié … en utilisant 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.