Linear Search (OCR A Level Computer Science): Revision Note

Exam code: H446

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

Updated on

Searching Algorithms

What is a searching algorithm?

  • A searching algorithm is a method to find a specific value or element within a data structure.

  • The two most common are:

  • The linear search is a standard algorithm used to find elements in an unordered list. The list is searched sequentially and systematically from the start to the end one element at a time, comparing each element to the value being searched for

    • If the value is found the algorithm outputs where it was found in the list

    • If the value is not found it outputs a message stating it is not in the list

  • An example of using a linear search would be looking for a specific student name in a list or searching for a supermarket item in a shopping list

figure-1--performing-the-linear-search-revision-notes-computer-science

Figure 1: Performing the Linear Search

  • To determine the algorithm's execution time as measured by the number of instructions or steps carried out, Big-O notation must be used

  • The loop is executed n times, once for each item. There are two instructions within the loop, the if statement and an assignment, hence the Big-O for the loop is O(2n)

  • There are three initial statements which are O(1)

  • The overall Big-O notation is therefore 2n + 3, which when coefficients are factored out, becomes O(n) as linear time dominates constant time. The constant term and coefficients contribute significantly less as the input size n grows larger

  • It is important to remember here that O(n) is the worst case scenario. The best case scenario O(1) would find the item the first time, while the average case would be O(n/2) which when we remove coefficients still becomes O(n)

  • Linear search has a space complexity of O(1) because it does not require any additional memory that grows with the size of the input

  • It only uses a constant amount of extra space, such as a loop counter or a variable to store the target value

  • Given the following list [5, 4, 7, 1, 3, 8, 9, 2], a trace table for the linear search is shown below

Trace Table of the Linear Search

item

index

i

list[i]

found

8

-1

0

5

False

 

 

1

4

 

 

 

2

5

 

 

 

3

1

 

 

 

4

3

 

8

5

5

8

True

Pseudocode

function linearSearch(list, item)
	index = -1
	i = 0
	found = False
	while i < len(list) and found = False
		if list[i] = item then
			index = i
			found = True
		endif
		i = i + 1
	endwhile
	return index
endfunction
  • In the above algorithm, a list of n ordered items is passed to the function and three variables are initialised

  • index = -1 is a default value to indicate "not found", i = 0 is a counter to ensure the loop starts at the beginning of the list and found = False sets a flag to track when/if the value you are searching for is found

  • The loop continues as long as the counter hasn't reached the end of the list and if list[i] = item the current index is stored as the location of the item

  • The flag found is set to True to signal the search can be stopped

  • i = i + 1 increments the counter to move to the next element in the list if the value is not found

  • After the loop completes the function returns the final value of index

Python

def linear_search(list, item):
    index = -1
    for i in range(len(list)):
        if list[i] == item:
            index = i
            break  # Stop the loop once the item is found
    return index

Java

public class LinearSearch {
    public static int linearSearch(int[] list, int item) {
        int index = -1;
        for (int i = 0; i < list.length; i++) {
            if (list[i] == item) {
                index = i;
                break;  // Stop the loop once the item is found
            }
        }
        return index;
    }

You've read 0 of your 5 free revision notes this week

Unlock more, it's free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Robert Hampton

Author: Robert Hampton

Expertise: Computer Science Content Creator

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.

James Woodhouse

Reviewer: James Woodhouse

Expertise: Computer Science & English Subject Lead

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.