Exam code:1CP2
What is a sorting algorithm?
-
Sorting algorithms are precise step-by-step instructions that a computer can follow to efficiently sort data in massive datasets
-
Three common sorting algorithms are:
-
Bubble sort
-
Merge sort
-
Bubble Sort
What is a bubble sort?
-
A bubble sort is a simple sorting algorithm that starts at the beginning of a dataset and checks values in ‘pairs’ and swaps them if they are not in the correct order
-
One full run of comparisons from beginning to end is called a ‘pass‘, a bubble sort may require multiple ‘passes‘ to sort the dataset
-
The algorithm is finished when there are no more swaps to make
How do you perform a bubble sort?
|
Step |
Instruction |
|---|---|
|
1 |
Compare the first two values in the dataset |
|
2 |
IF they are in the wrong order…
|
|
3 |
Compare the next two values |
|
4 |
REPEAT step 2 & 3 until you reach the end of the dataset (pass 1) |
|
5 |
IF you have made any swaps…
|
|
6 |
ELSE you have not made any swaps…
|
Example
-
Perform a bubble sort on the following dataset
|
5 |
2 |
4 |
1 |
6 |
3 |
|
Step |
Instruction |
||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
1 |
Compare the first two values in the dataset
|
||||||||||||||||||||||||
|
2 |
IF they are in the wrong order…
|
||||||||||||||||||||||||
|
3 |
Compare the next two values
|
||||||||||||||||||||||||
|
4 |
REPEAT step 2 & 3 until you reach the end of the dataset
|
||||||||||||||||||||||||
|
5 |
IF you have made any swaps…
|
||||||||||||||||||||||||
|
6 |
ELSE you have not made any swaps…
|
Examiner Tips and Tricks
In the exam, you do not have to show every swap that takes place in a bubble sort. You can show the outcome of a bubble sort at the end of each pass. If you have the outcome of each pass correct then a bubble sort has been implemented correctly and all marks will be given!
A bubble sort in python
-
In the exam, students are required to understand the mechanics of the algorithm as well as the advantages and disadvantages of it
-
Students are not required to remember the code for the algorithm
# unsorted datasetnums=[66, 7, 69, 50, 42, 80, 71, 321, 67, 8, 39]
# count the length of the datasetnumlength = len(nums)
# sets a flag to initiate the loopswaps = True
while swaps == True : swaps = False # loop through the dataset for y in range(numlength-1) : # if the first number is bigger than the second number if nums[y] > nums[y+1] : # swap the numbers using a temporary variable temp = nums[y] nums[y] = nums[y+1] nums[y+1] = temp # sets the flag to true swaps = True
# prints the sorted listprint (nums)
Worked Example
A program uses a file to store a list of words.
A sample of this data is shown
|
Milk |
Eggs |
Bananas |
Cheese |
Potatoes |
Grapes |
Show the stages of a bubble sort when applied to data shown [2]
How to answer this question
-
We need to sort the values in to alphabetical order from A-Z
-
You CAN use the first letter of each word to simplify the process
Answer
-
E, B, C, M, G, P (pass 1)
-
B, C, E, G, M, P (pass 2)
Merge Sort
What is a merge sort?
-
A merge sort is a sorting algorithm that uses the ‘divide and conquer‘ strategy of dividing a dataset into smaller sub-datasets and merging them back together in the correct order
How do you perform a merge sort?
|
Step |
Instruction |
|
1 |
Divide the dataset into individual datasets by repeatedly splitting the dataset in half (DIVIDE) |
|
2 |
Merge pairs of sub-datasets together by comparing the first value in each dataset (CONQUER) |
|
3 |
REPEAT step 2 until all sub-datasets are merged together into one dataset |
Example
-
Perform a merge sort on the following dataset
|
7 |
4 |
1 |
2 |
6 |
3 |
8 |
5 |
|
Step |
Instruction |
|
|---|---|---|
|
1 |
Divide the dataset into individual datasets by repeatedly splitting the dataset in half (DIVIDE)
|
Responses