Community resourceWorksheet
1CP2-CT-5.1 How merge sort works
Part 1 of 7 · 1CP2-CT-5 · Merge sort, files and authentication
The opening merge sort worksheet, following the divide and merge stages by hand before any code is written.
Students will:
- describe the divide stage and the merge stage separately
- show the output after each comparison of a complete merge
- explain why a merge only compares the two first unused values
- identify the mistake behind a merge that concatenates instead
- state one memory cost and one benefit of merge sort
Inside: 6 explanation cells, 3 multiple-choice questions, 1 fill-in-the-blanks cell and 4 written answers. 17 marks, about 45 minutes.
Series: 1CP2-CT-5 · Merge sort, files and authentication, part 1 of 7.
Shared by Coding PathwayVerified teacher
- 14 cells
- About 45 minutes
- CC BY-SA 4.0
- Shared 17 Aug 2026
Preview
The whole resource, exactly as a class sees it. Answers and marking are held back.
How merge sort works
A sorting algorithm puts data into a defined order. Merge sort repeatedly divides the data into smaller groups, then combines those groups in order. Pearson requires you to understand how the standard algorithm works; writing a complete recursive merge-sort program is not required here.
1. Divide, then merge
The divide stage continues until every group contains one item. A one-item group is already sorted. During each merge, compare the first unused item in each sorted group, copy the smaller item, and repeat. When one group is empty, copy the remainder of the other group.
- divides
- merges
- searched
- sorted
When merging [4, 11] and [7, 9], which value is copied first?
- A4
- B7
- C9
- D11
2. Model a complete merge
Merge [4, 11, 18] with [7, 9, 20]:
| Comparison | Smaller item copied | Output so far |
|---|---|---|
| 4 and 7 | 4 | [4] |
| 11 and 7 | 7 | [4, 7] |
| 11 and 9 | 9 | [4, 7, 9] |
| 11 and 20 | 11 | [4, 7, 9, 11] |
| 18 and 20 | 18 | [4, 7, 9, 11, 18] |
The right group then has one value left, so copy 20 without another comparison.
Show the output after each comparison when merging [3, 12, 25] and [8, 10, 30].
Begin by comparing 3 and 8. Include the final remainder.
Students type their answer here.
3. Follow the stages, not just the answer
For [8, 3, 6, 2], the split produces [8, 3] and [6, 2], then single items. The first merges make [3, 8] and [2, 6]. The final merge makes [2, 3, 6, 8].
Examination questions may show a partly completed diagram or ask for the state after a stage. Preserve every value and the relative sorted order within each completed group.
After the first pairwise merge stage for [9, 1, 7, 4], which groups should exist?
- A`[1, 9]` and `[4, 7]`
- B`[1, 4]` and `[7, 9]`
- C`[9, 1]` and `[7, 4]`
- D`[1, 4, 7, 9]` only
Explain why the merge stage can select the smaller of only the two first unused values.
Use the fact that both input groups are already sorted.
Students type their answer here.
4. Reason about efficiency
Merge sort uses additional memory to hold temporary groups and merged output. Its repeated halving makes it suitable for large collections, but at GCSE you should evaluate an algorithm using the evidence given: comparisons, passes and memory—not rely on an unsupported claim that one algorithm is always best.
State one reason merge sort needs additional memory and one feature that can make it suitable for a large list.
Give one memory point and one process point.
Students type their answer here.
A student merges [2, 10] and [4, 8] as [2, 10, 4, 8]. What mistake has been made?
- AThey divided too many times.
- BThey copied one whole group without repeatedly comparing front unused items.
- CThey used too much memory.
- DThey should have searched for 8 first.
Complete a divide-and-merge account for [14, 5, 9, 2], ending with the sorted list.
Show the two halves, the sorted pairs and the final merge.
Students type their answer here.
Route forward
You can explain and hand-trace merge sort. Next you will model the central merge operation using two indexes and a while loop; this is useful programming practice without requiring a recursive full implementation.