L'énoncé
- Soit le programme suivant :
T = [4,12,5,8,9,6,13,3]
def imin(T,a,b):
imin = a
for i in range(a+1, b):if T[i] < T[imin]:
imin = i
return imin
def triselect(T):
N = len(T)
for i in range(N-1):
j = imin(T,i,N)
T[i], T[j] = T[j], T[i]
return T
Cocher la (ou les) bonne(s) réponse(s).
Tu as obtenu le score de
Question 1
Que renvoie la fonction imin
?
La valeur minimum de T entre a et b
La position de la valeur minimum de T entre a+1 et b
La position de la valeur minimum de T entre a et b
La valeur minimum de T entre a+1 et b
i indique une position dans le tableau.
La fonction imin(T,a,b)
parcourt T entre les positions a et b. Si la valeur en position i est plus petit que celle en position imin, on affecte i à imin.
Au final imin correspond à la position de la plus petit valeur de tableau.
Question 2
Que fait la ligne de code suivante ?
T[i], T[j] = T[j], T[i]
Elle échange la valeur de position i avec la valeur de position j.
Elle échange la valeur de position j avec la valeur de position i.
Elle ajoute la valeur d'indice j à la valeur d'indice i
Elle ajoute la valeur d'indice i à la valeur d'indice j
En Python :
a, b = 1, 0
Est équivalent à :
a = 1
b = 0
En Python :
T[i], T[j] = T[j], T[i]
Est équivalent à :
res = T[i]
T[i] = T[j]
T[j] = res
Ainsi, cette instruction permet d'échanger les éléments du tableau d'indice i et j.
Question 3
Que représente les paramètres a et b de la fonction imin
?
a représente la position du premier élément de l'intervalle à analyser
b représente la position du premier élément de l'intervalle à analyser
a représente la position du dernier élément de l'intervalle à analyser
b représente la position du dernier élément de l'intervalle à analyser
Question 4
Que vaut T après 3 itérations dans la boucle for de la fonction triselect ?
[4, 12, 5, 8, 9, 6, 13, 12]
[3, 4, 5, 8, 9, 6, 13, 12]
[3, 12, 5, 8, 9, 6, 13, 12]
[3, 4, 5, 6, 9, 8, 13, 12]
<td style="
itération | i | T |
0 | [4,12,5,8,9,6,13,3] | |
1 |
Question 5
Combien y a-t-il d'affectations dans la fonction triselect avec ce tableau ?
25
24
24 + o(8²)
25 + o(8²)
Il y a 3 affectations dans la boucle for
de la fonction triselect
qui sont répétées N fois (i varie entre 0 et N-1). La première instruction de la fonction est aussi un affectation (N = len(T)).
On obtient $3 \times N + 1 = 3 \times 6 + 1 = 25$ affectations.