# Linear Search

## How it works

The simplest way to search for an item is to simply start at the beginning of the list, and look at each item in turn until either:

- You find the item that you are looking for, or
- You reach the end of the list without finding what you are after, in which case the item does not exist in the list

## Pseudocode

sub LinearSearch(data, target) foundAt = -1 for i = 0 to len(data) if data[i] == target then foundAt = i break end if end for return foundAt end sub

## Time efficiency

Assuming the worst case (that is, the item being searched for is the **last** item in the list or it doesn’t exist), then the complexity is O(n).

As the number of items in the list doubles, the number of comparisons that potentially need to be completed in order to find an item also doubles.

## Advantages

This algorithm can search **unsorted** data – as it looks at each item in a list, one by one until it finds what it is looking for, the data being searched does not need to be in any specific order.

It is also a very simple algorithm to implement – look at the pseudocode above.

## Disadvantages

There are more efficient search algorithms (for example binary search) which work far better with large data sets, although in contrast to a linear search, these require data to be ordered.