StudyDeck

Linear Search & Bubble Sort

Exam code: 2210
Written by: Ashika|Reviewed by: Caroline Carroll|Updated 2 July 2026

Linear Search

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

A linear search in Pseudocode

// Declare variables
DECLARE data : ARRAY[1:5] OF INTEGER 
DECLARE target : INTEGER 
DECLARE found : BOOLEAN 

// Assign values to the array and target
data ← [5, 2, 8, 1, 9]
target ← 11
found ← FALSE  // Start with the assumption that the target is not found

// Loop through each element in the array
FOR index ← 1 TO 5
    // Check if the current element matches the target
    IF data[index] = target THEN
        found ← TRUE
        OUTPUT "Target found"
    ENDIF
NEXT index

// After the loop, check if the target was never found
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")

Bubble Sort

Bubble Sort

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

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

Bubble sort algorithm illustration showing two passes on the list: 9, 2, 4, 7, 10, 3, 1. Arrows indicate comparisons and 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

5

2

4

1

6

3

2

IF they are in the wrong order...

  • Swap them

2

5

4

1

6

3

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)

1

2

3

4

5

6

  • 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

// Declare the array
DECLARE nums : ARRAY[1:11] OF INTEGER 
nums ← [66, 7, 69, 50, 42, 80, 71, 321, 67, 8, 39]

// Store the length of the array
DECLARE numlength : INTEGER 
numlength ← 11

// Set a flag to check if any swaps are made
DECLARE swaps : BOOLEAN 
swaps ← TRUE

// Repeat the loop while swaps are being made
WHILE swaps = TRUE
    swaps ← FALSE

    // Loop through the array from the start to the second-last unsorted element
    FOR y ← 1 TO numlength - 1
        // If the current number is greater than the next number, swap them
        IF nums[y] > nums[y + 1] THEN
            DECLARE temp : INTEGER 
            temp ← nums[y]
            nums[y] ← nums[y + 1]
            nums[y + 1] ← temp

            swaps ← TRUE  // A swap was made
        ENDIF
    NEXT y

    // Decrease the range as the last value is now sorted
    numlength ← numlength - 1
ENDWHILE

// Output the sorted array
FOR i ← 1 TO 11
    OUTPUT nums[i]
NEXT i

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)