24-NSIJ2AN1-1
-
Ou plus simplement :
-
Cet algorithme est récursif car la fonction
triStoogefait appel à elle-même (ligne 6 à 8). -
Lors du premier appel,
i = 0etj = 5donck = (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 Aavant l'appelValeur de Aaprè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)\).