Oxford Cambridge and RSA
W ednesday 1 8 J u ne 2 0 2 5 – M orning
A L ev el C om p u ter S cience
H 4 4 6 /0 2 Algorithms and programming
T im e al l owed: 2 hou rs 3 0 m inu tes
Y ou can u se:
* 1 3 5 2 4 4 1 7 8 5 *
• a ruler (cm/mm)
• an HB pencil
Do not u se:
• a calculator
* H 4 4 6 0 2 *
Please write clearly in black ink. Do not write in the barcodes.
Centre number Candidate number
First name(s)
Last name
IN S T R U C T IO N S
• Use black ink. You can use an HB pencil, but only for graphs and diagrams.
• Write your answer to each question in the space provided. If you need extra space use
the lined page at the end of this booklet. The question numbers must be clearly shown.
• Answer al l the questions.
INF O R M A T IO N
• The total mark for this paper is 1 4 0 .
• The marks for each question are shown in brackets [ ] .
• Quality of extended response will be assessed in questions marked with an
asterisk (*).
• This document has 3 2 pages.
A DV I C E
• Read each question carefully before you start your answer.
© OCR 2025 [601/4911/5] OCR is an exempt Charity
DC (PQ/CGW) 337417/5 T u rn ov er
for more: tyrionpapers.com
, 2
S ection A
1 Data in a computer program needs to be sorted.
( a)
( i) Describe the steps a bubble sort will take to sort items into ascending order.
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..................................................................................................................................................... [ 5 ]
( ii) Darcie and Felix have both written a program that will perform a bubble sort to put these numbers
into ascending order.
2 1 3 4 5 6 7
Darcie’s version will complete six passes. However, Felix’s version will only need to complete
two passes.
Explain how Felix may have made his version more efficient than Darcie’s version.
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..................................................................................................................................................... [ 2 ]
© OCR 2025
for more: tyrionpapers.com
, 3
( b) A second type of sorting algorithm is an insertion sort.
Describe how an insertion sort can be used to put the following data into ascending order.
20 8 15 36
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..................................................................................................................................................... [ 5 ]
© OCR 2025 T u rn ov er
for more: tyrionpapers.com
, 4
( c) A third type of sorting algorithm is a quick sort.
The following quick sort algorithm is made up of two functions called partition() and
quickSort(). The algorithm will sort an integer array into ascending numerical order.
01 function partition(array, low, high)
02 pivot = array[high]
03 index = low - 1
04 for count = low to high-1
05 if array[count] < pivot then
06 index = index + 1
07 temp = array[index]
08 array[index] = array[count]
09 array[count] = temp
10 endif
11 next count
12 temp = array[index + 1]
13 array[index + 1] = array[high]
14 array[high] = temp
15 return index + 1
16 endfunction
17
18 function quickSort(array, low, high)
19 if low < high then
20 partitionIndex = partition(array, low, high)
21 quickSort(array, low, partitionIndex - 1)
22 quickSort(array, partitionIndex + 1, high)
23 endif
24 endfunction
( i) Identify which of the two functions is recursive and give all of the line numbers where recursive
calls are made.
Recursive function name ..................................................................................................................
Recursive call line numbers .............................................................................................................
[2 ]
© OCR 2025
for more: tyrionpapers.com
W ednesday 1 8 J u ne 2 0 2 5 – M orning
A L ev el C om p u ter S cience
H 4 4 6 /0 2 Algorithms and programming
T im e al l owed: 2 hou rs 3 0 m inu tes
Y ou can u se:
* 1 3 5 2 4 4 1 7 8 5 *
• a ruler (cm/mm)
• an HB pencil
Do not u se:
• a calculator
* H 4 4 6 0 2 *
Please write clearly in black ink. Do not write in the barcodes.
Centre number Candidate number
First name(s)
Last name
IN S T R U C T IO N S
• Use black ink. You can use an HB pencil, but only for graphs and diagrams.
• Write your answer to each question in the space provided. If you need extra space use
the lined page at the end of this booklet. The question numbers must be clearly shown.
• Answer al l the questions.
INF O R M A T IO N
• The total mark for this paper is 1 4 0 .
• The marks for each question are shown in brackets [ ] .
• Quality of extended response will be assessed in questions marked with an
asterisk (*).
• This document has 3 2 pages.
A DV I C E
• Read each question carefully before you start your answer.
© OCR 2025 [601/4911/5] OCR is an exempt Charity
DC (PQ/CGW) 337417/5 T u rn ov er
for more: tyrionpapers.com
, 2
S ection A
1 Data in a computer program needs to be sorted.
( a)
( i) Describe the steps a bubble sort will take to sort items into ascending order.
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..................................................................................................................................................... [ 5 ]
( ii) Darcie and Felix have both written a program that will perform a bubble sort to put these numbers
into ascending order.
2 1 3 4 5 6 7
Darcie’s version will complete six passes. However, Felix’s version will only need to complete
two passes.
Explain how Felix may have made his version more efficient than Darcie’s version.
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..................................................................................................................................................... [ 2 ]
© OCR 2025
for more: tyrionpapers.com
, 3
( b) A second type of sorting algorithm is an insertion sort.
Describe how an insertion sort can be used to put the following data into ascending order.
20 8 15 36
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..................................................................................................................................................... [ 5 ]
© OCR 2025 T u rn ov er
for more: tyrionpapers.com
, 4
( c) A third type of sorting algorithm is a quick sort.
The following quick sort algorithm is made up of two functions called partition() and
quickSort(). The algorithm will sort an integer array into ascending numerical order.
01 function partition(array, low, high)
02 pivot = array[high]
03 index = low - 1
04 for count = low to high-1
05 if array[count] < pivot then
06 index = index + 1
07 temp = array[index]
08 array[index] = array[count]
09 array[count] = temp
10 endif
11 next count
12 temp = array[index + 1]
13 array[index + 1] = array[high]
14 array[high] = temp
15 return index + 1
16 endfunction
17
18 function quickSort(array, low, high)
19 if low < high then
20 partitionIndex = partition(array, low, high)
21 quickSort(array, low, partitionIndex - 1)
22 quickSort(array, partitionIndex + 1, high)
23 endif
24 endfunction
( i) Identify which of the two functions is recursive and give all of the line numbers where recursive
calls are made.
Recursive function name ..................................................................................................................
Recursive call line numbers .............................................................................................................
[2 ]
© OCR 2025
for more: tyrionpapers.com