0% found this document useful (0 votes)
72 views10 pages

Topic 7.4 Linear Search & Bubble Sort

The document provides an overview of standard methods for solving problems in computer science, focusing on linear search and bubble sort algorithms. It includes detailed explanations, pseudocode, and Python code examples for both searching and sorting methods, as well as concepts like totalling, counting, and finding maximum, minimum, and average values. These algorithms are essential for efficiently managing and processing data in various applications.

Uploaded by

Naveed Younus
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views10 pages

Topic 7.4 Linear Search & Bubble Sort

The document provides an overview of standard methods for solving problems in computer science, focusing on linear search and bubble sort algorithms. It includes detailed explanations, pseudocode, and Python code examples for both searching and sorting methods, as well as concepts like totalling, counting, and finding maximum, minimum, and average values. These algorithms are essential for efficiently managing and processing data in various applications.

Uploaded by

Naveed Younus
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

Page 1

Cambridge (CIE) IGCSE Your notes


Computer Science
Standard Methods of a Solution
Contents
Linear Search & Bubble Sort
Other Standard Methods of a Solution
Page 2

Linear Search & Bubble Sort


Your notes
Linear Search
What is a searching algorithm?
Searching algorithms are precise step-by-step instructions that a computer can follow to efficiently
locate specific data in massive datasets

What is a linear search?


A linear search starts with the first value in a dataset and checks every value one at a time until all
values have been checked
A linear search can be performed even if the values are not in order

How do you perform a linear search?


Step Instruction

1 Check the first value

2 IF it is the value you are looking for


STOP!

3 ELSE move to the next value and check

4 REPEAT UNTIL you have checked all values and not found the value you are looking for
Page 3
A linear search in Pseudocode

# Identify the dataset, target value, and set the initial flag
DECLARE data : ARRAY[1:5] OF INTEGER
DECLARE target : INTEGER Your notes
DECLARE found : BOOLEAN

data ← [5, 2, 8, 1, 9]
target ← 11
found ← FALSE

# Loop through each element in the data


FOR index ← 1 TO 5 DO
IF data[index] = target THEN
# If found, output message
found ← TRUE
OUTPUT "Target found"
BREAK
ENDIF
NEXT index

# If the target is not found, output a message


IF found = FALSE THEN
OUTPUT "Target not found"
ENDIF

A linear search in Python code

# Identify the dataset to search, the target value and set the initial flag
data = [5, 2, 8, 1, 9]
target = 11
found = False

# Loop through each element in the data


for index in range(0, len(data)): # loop to go through all elements
# Check if the current element matches the target
if data[index] == target:
# If found, output message
found = True
print("Target found")
break # Exit the loop if the target is found

# If the target is not found, output a message


if not found:
print("Target not found")
Page 4

What is a sorting algorithm?


Sorting algorithms are precise step-by-step instructions that a computer can follow to efficiently Your notes
sort data in massive datasets

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...


Swap them

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...


REPEAT from the start (pass 2,3,4...)

6 ELSE you have not made any swaps...


STOP! the list is in the correct order
Page 5

Your notes

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

5 2 4 1 6 3

2 IF they are in the wrong order...


Page 6
Swap them

2 5 4 1 6 3 Your notes

3 Compare the next two values

2 5 4 1 6 3

4 REPEAT step 2 & 3 until you reach the end of the dataset
5 & 4 SWAP!

2 4 5 1 6 3

5 & 1 SWAP!

2 4 1 5 6 3

5 & 6 NO SWAP!

2 4 1 5 6 3

6 & 3 SWAP!

2 4 1 5 3 6

End of pass 1

5 IF you have made any swaps...


REPEAT from the start
End of pass 2 (swaps made)

2 1 4 3 5 6

End of pass 3 (swaps made)


Page 7

1 2 3 4 5 6
Your notes
End of pass 4 (no swaps)

1 2 3 4 5 6

6 ELSE you have not made any swaps...


STOP! the list is in the correct order

A bubble sort in Pseudocode

# Unsorted dataset
DECLARE nums : ARRAY[1:11] OF INTEGER
nums ← [66, 7, 69, 50, 42, 80, 71, 321, 67, 8, 39]

# Count the length of the dataset


DECLARE numlength : INTEGER
numlength ← 11

# Set a flag to initiate the loop


DECLARE swaps : BOOLEAN
swaps ← TRUE

WHILE swaps DO # While any swap is made, continue


swaps ← FALSE
# Loop through the dataset
FOR y ← 1 TO numlength - 1 DO
IF nums[y] > nums[y + 1] THEN # If the first number is bigger
# Swap the numbers
DECLARE temp : INTEGER
temp ← nums[y]
nums[y] ← nums[y + 1]
nums[y + 1] ← temp
swaps ← TRUE # Mark that a swap was made
ENDIF
NEXT y
# Each iteration confirms that the last element is in place
numlength ← numlength - 1
ENDWHILE

# Print the sorted list


OUTPUT nums
Page 8

A bubble sort in Python code

# Unsorted dataset
nums = [66, 7, 69, 50, 42, 80, 71, 321, 67, 8, 39]

# Count the length of the dataset


numlength = len(nums)

# Set a flag to initiate the loop


swaps = True

while swaps: # While any swap is made, continue


swaps = False
# Loop through the dataset
for y in range(numlength - 1): # Compare adjacent elements
if nums[y] > nums[y + 1]: # If the first number is bigger
# Swap the numbers using a temporary variable
nums[y], nums[y + 1] = nums[y + 1], nums[y]
swaps = True # Mark that a swap was made

# Each iteration confirms that the last element is in place


numlength -= 1

# Print the sorted list


print(nums)
Page 9

Other Standard Methods of a Solution


Your notes
Totalling & Counting
What is totalling?
Totalling is keeping a running total of values entered into the algorithm
An example may be totalling a receipt for purchases made at a shop
In the example below, the total starts at 0 and adds up the user inputted value for each item in the list

Pseudocode

Total ← 0
FOR Count ← 1 TO ReceiptLength
INPUT ItemValue
Total ← Total + itemValue
NEXT Count
OUTPUT Total

What is counting?
Counting is when a count is incremented or decremented by a fixed value, usually 1, each time it
iterates
Counting keeps track of the number of times an action has been performed
Many algorithms use counting, including the linear search to track which element is currently being
considered
In the example below, the count is incremented and each pass number is output until fifty outputs have
been produced

Pseudocode

Count ← 0
DO
OUTPUT “Pass number”, Count
Count ← Count + 1
UNTIL Count >= 50

In the example below, the count is decremented from fifty until the count reaches zero. An output is
produced for each pass
Page 10

Pseudocode
Your notes
Count ← 50
DO
OUTPUT “Pass number”, Count
Count ← Count - 1
UNTIL Count <= 0

Maximum, Minimum & Average


Finding the largest (max), smallest (min) and average (mean) values in a list are frequently used method
in algorithms
Examples could include:
Calculating the maximum and minimum student grades or scores in a game
Calculating the average grade of students in a class test
In the example below, in a list of student test scores, the highest, lowest and average scores are
calculated and displayed to the screen

Pseudocode

Total ← 0
Scores ← [25, 11, 84, 91, 27]

Highest ← max(Scores)
Lowest ← min(Scores)

# Loop through the scores in the list (indexing starts from 0)


FOR Count ← 0 TO LENGTH(Scores) - 1
# Add score to total
Total ← Total + Scores[Count]
NEXT Count

# Calculate average
Average ← Total / LENGTH(Scores)

OUTPUT "The highest score is:", Highest


OUTPUT "The lowest score is:", Lowest
OUTPUT "The average score is:", Average

You might also like