Cours Tri par sélection
QCM
  • 1
  • 2
  • 3
  • 4
  • 5

L'énoncé

- Soit le programme suivant :

= [4,12,5,8,9,6,13,3]

def imin(T,a,b):
imin = a
for in range(a+1, b):
if T[i] < T[imin]:
imin = i
return imin

def triselect(T):
N = len(T)
for in range(N-1):

= 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

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
  [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.