# 1. Introduction

*Linear Search*, also known as sequential search, is a simple search algorithm. It involves iterating over each element in a list and comparing it with the search key until a match is found or the end of the list is reached. It works on both sorted and unsorted lists but is less efficient than binary search on a sorted list.

# 2. Implementation Steps

1. Start from the first element in the list.

2. Compare the search key with the current element.

3. If they match, return the index of the current element.

4. If they don't match, move to the next element and repeat the process.

5. If the end of the list is reached and the key isn't found, return an indication that it's not present in the list.

# 3. Implementation in Python

```
def linear_search(arr, x):
"""Function to perform Linear Search on a list."""
for i in range(len(arr)):
if arr[i] == x:
return i
return -1
arr = [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
x = 12
result = linear_search(arr, x)
if result != -1:
print(f"Element {x} is present at index {result}")
else:
print(f"Element {x} is not present in the list")
```

### Output:

Element 12 is present at index 5

### Explanation:

1. The *linear_search* function iterates over each element in the list *arr*.

2. For every element, it checks if it matches with the search key *x*.

3. If a match is found, it returns the index of that element.

4. If no match is found by the end of the list, it returns *-1* indicating the element is not present in the list.

*Linear Search* has a time complexity of O(n) since in the worst case it might have to compare the search key with each element in the list. Despite its simplicity, it's not the most efficient searching algorithm for large lists, especially when the list is sorted.

# Related Data Structures in Python

- Stack Implementation in Python
- Queue Implementation in Python
- Deque Implementation in Python
- Singly Linked List Implementation in Python
- Doubly Linked List Implementation in Python
- Circular Linked List Implementation in Python
- PriorityQueue Implementation in Python
- Circular Queue Implementation in Python
- Binary Search Tree Implementation in Python
- Stack Implementation Using Linked List in Python
- Stack Implementation Using Doubly Linked List in Python