BTS | Mathématiques | Durée : 40 min | /20
Dernière mise à jour : 21 juin 2026
Nom : _____ Prénom : _____ Date : _____
On dispose du tableau trié de 7 cotes (en mm), indexé à partir de 0 :
| Indice | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|---|
| Valeur | 2 | 5 | 7 | 9 | 12 | 15 | 21 |
On veut trier par ordre croissant le tableau \([4, 1, 5, 2, 3]\) avec le tri à bulles (comparaisons d'éléments adjacents, échange si l'élément de gauche est plus grand).
On dispose d'une structure initialement vide. On effectue dans l'ordre les opérations : insérer 10, insérer 20, insérer 30, puis extraire un élément.
On considère la fonction Python : def f(n): return 1 if n == 0 else n * f(n - 1)
Exercice 1 (4 pts)
a) Initialement \(g = 0\), \(d = 6\). (3 pts)
Indices milieu testés : 3 puis 5 ; indice retourné : 5.
b) La dichotomie divise la zone de recherche par 2 à chaque étape : sa complexité est \(O(\log n)\) au lieu de \(O(n)\), donc beaucoup plus rapide sur de grands tableaux triés. (1 pt)
Exercice 2 (4 pts)
a) Première passe sur \([4, 1, 5, 2, 3]\) : (3 pts)
b) À la fin de la première passe, le plus grand élément 5 a « remonté » jusqu'à la dernière position : il est définitivement à sa place. (1 pt)
Exercice 3 (4 pts)
a) Recherche séquentielle : \(O(n)\) ; recherche dichotomique : \(O(\log n)\) ; tri à bulles : \(O(n^2)\) ; tri rapide (moyenne) : \(O(n \log n)\). (2 pts)
b) De la plus rapide à la plus lente : \[O(1) \;\ll\; O(\log n) \;\ll\; O(n) \;\ll\; O(n\log n) \;\ll\; O(n^2).\] (2 pts)
Exercice 4 (3 pts)
a) Pile (LIFO, dernier entré – premier sorti) : on extrait le dernier inséré, soit 30. (1,5 pt)
b) File (FIFO, premier entré – premier sorti) : on extrait le premier inséré, soit 10. (1,5 pt)
Exercice 5 (5 pts)
a) Le cas de base est \(n = 0\), qui renvoie \(1\). La fonction calcule la factorielle \(n! = 1 \times 2 \times \cdots \times n\). (2 pts)
b) Déroulement pour \(f(4)\) : (2 pts)
\(f(4) = 4 \times f(3) = 4 \times 3 \times f(2) = 4 \times 3 \times 2 \times f(1) = 4 \times 3 \times 2 \times 1 \times f(0) = 4 \times 3 \times 2 \times 1 \times 1 = 24\).
Résultat : \(f(4) = 24\).
c) Pour \(n = 4\) : \(2^4 - 1 = 16 - 1 = 15\) déplacements. (1 pt)
Total : 4 + 4 + 4 + 3 + 5 = 20 points.