Computer Science · Oct / Nov 2024 · Paper 22 · Question 4
0478
As printed in the paper
The question as text
This pseudocode algorithm is intended to sort a pre-populated one-dimensional (1D) array named x¦sy§x into alphabetical order using a bubble sort. ¨ qsr x¦sy§x rr©¨¨ª u ¨ qsr qvzxw u ¨« qsr sy¦yx ¨¬ qsr ~§§ ¨® qsr u¯~°°± ²sr ¨³ qsr ¦° u ¨ sy¦yx ¨¨ ¨´ ~§§ ¨µ ¦° ¶ ¨ s u¯~°°± ¶ ~§§ sy¦yx u¯~°°± rsu qvzxw sy¦yx · ~§§ « x¦sy§x©qvzxwª x¦sy§x©qvzxw ¸ ª ¬ ® ¦° x¦sy§x©qvzxwª ³ x¦sy§x©qvzxwª x¦sy§x©qvzxw ¸ ª x¦sy§x©qvzxwª ¦° ´ u¯~°°± ¶ µ qru ¨ ~§§ ~§§ ¸ qvzxw s
Read automatically from the paper; the printed page above is exact.
Show the answer and mark scheme
4(a)[5]
One mark per mark point
Line 02 / DECLARE Counter : STRINGshould be DECLARE Counter : INTEGER
Line 09 / Temp ← TRUEshould be Swapped ← TRUE
Line 10 / WHILE Swapped = TRUE OR Pass <= Limit - 1 DO should be WHILE Swapped = TRUE AND Pass <= Limit - 1 DOLine 17 / ItemList[Counter] ← Tempshould be ItemList[Counter + 1] ← Temp
Line 19 / ENDCASEshould be ENDIF
Correct algorithm:
01 DECLARE ItemList : ARRAY[1:100] OF STRING
02 DECLARE Counter : INTEGER
03 DECLARE Limit : INTEGER
04 DECLARE Pass : INTEGER
05 DECLARE Swapped : BOOLEAN
06 DECLARE Temp : STRING
07 Limit ← 100
08 Pass ← 1
09 Swapped ← TRUE
10 WHILE Swapped = TRUE AND Pass <= Limit - 1 DO
11 Swapped ← FALSE
12 FOR Counter ← 1 TO Limit – Pass
13 IF ItemList[Counter] > ItemList[Counter + 1] 14 THEN
15 Temp ← ItemList[Counter]
16 ItemList[Counter] ← ItemList[Counter + 1] 17 ItemList[Counter + 1] ← Temp
18 Swapped ← TRUE
19 ENDIF
20 Pass ← Pass + 1
21 NEXT Counter
22 ENDWHILE
4(b)[3]
One mark per mark point (max three)
The use of a flag (set initially to FALSE) to show if a swap has been made (during the current iteration)… to stop the loop if it has been sortedThe reduction in the limit of the (inner) loop after each iteration (of the loop)… to reduce the number of comparisons / iterations required
Make a free account to save your answers and see your weak topics and ask the AI why a wrong answer is wrong.

