Basis van programmeren (pseudocode traceren)
De volgende procedure bubble is een bubblesort die de integer-array data oplopend sorteert. swap(data, j, k) is een procedure die de waarden van data[j] en data[k] verwisselt. Array-indexen beginnen bij 1. Wat moet er op de plaats van 【a】 in het programma staan?
○bubble(integer array: data)
integer: n ← length(data)
for (i from n down to 2 step 1)
for (j from 1 to 【a】 step 1)
if (data[j] > data[j + 1])
swap(data, j, j + 1)
endif
endfor
endfor
- Ai
- Bn − i
- Ci − 1
Antwoord en toelichting tonen
Antwoord: C. i − 1
De buitenste i is de positie waarheen elke doorgang de grootste resterende waarde brengt (n, n − 1, …, 2 vanaf het einde). De binnenste lus vergelijkt data[j] met data[j + 1], dus met i − 1 als eindwaarde voor j worden naast elkaar liggende paren tot en met data[i] vergeleken zonder buiten de array te komen. De eerste doorgang, met i = n, brengt de grootste waarde naar data[n]; de volgende gaat tot data[n − 1], enzovoort, zodat het bereik telkens één kleiner wordt. Met i op de plaats van 【a】 zou de eerste doorgang data[n + 1] lezen.
Verder: nog 9 vragen over Basis van programmeren (pseudocode traceren)