24-NSIJ2AN1-1
-
Ou plus simplement :
-
Cet algorithme est récursif car la fonction
triStooge
fait appel à elle-même (ligne 6 à 8). -
Lors du premier appel,
i = 0
etj = 5
donck = (5 – 0 + 1) // 3 = 2
. -
Sans compter l'appel initial, le nombre d'appels récursifs est 39 en comptant le nombre de nœuds, en excluant la racine, de l'arbre des appels.
-
- Case 1 :
triStooge(A, 1, 3)
- Case 2 :
triStooge(A, 2, 3)
- Case 3 :
triStooge(A, 0, 3)
- Case 1 :
-
Appel Valeur de A
avant l'appelValeur de A
après l'appeltriStooge(A, 0, 3)
[5, 6, 4, 2]
[2, 6, 4, 5]
triStooge(A, 0, 2)
[2, 6, 4, 5]
[2, 6, 4, 5]
triStooge(A, 1, 3)
[2, 4, 6, 5]
[2, 4, 6, 5]
triStooge(A, 0, 2)
[2, 4, 5, 6]
[2, 4, 5, 6]
-
Puisque \(2 = \frac{6}{3} < \frac{8}{3}\), le tri par insertion (ou le tri par sélection) dont le coût en temps dans le pire des cas est quadratique \(O(n^2)\), présente un meilleur coût. On aurait pu aussi citer le tri fusion de complexité quasilinéaire \(O(n \log n)\).