Skip to content
Related Articles
Open in App
Not now

Related Articles

Python Program for Linear Search

Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 22 Jun, 2022
Improve Article
Save Article

Problem: Given an array arr[] of n elements, write a function to search a given element x in arr[]. 

Examples :

Input : arr[] = {10, 20, 80, 30, 60, 50, 
                     110, 100, 130, 170}
          x = 110;
Output : 6
Element x is present at index 6

Input : arr[] = {10, 20, 80, 30, 60, 50, 
                     110, 100, 130, 170}
           x = 175;
Output : -1
Element x is not present in arr[].

A simple approach is to do a linear search, i.e

  • Start from the leftmost element of arr[] and one by one compare x with each element of arr[]
  • If x matches with an element, return the index.
  • If x doesn’t match with any of the elements, return -1.

Example: linear-search1 Iterative Approach:


# Searching an element in a list/array in python
# can be simply done using \'in\' operator
# Example:
# if x in arr:
#   print arr.index(x)
# If you want to implement Linear Search in python
# Linearly search x in arr[]
# If x is present then return its location
# else return -1
def search(arr, x):
    for i in range(len(arr)):
        if arr[i] == x:
            return i
    return -1

Recursive Approach: 


# This is similar to the above one, with the only difference
# being that it is using the recursive approach instead of iterative.
def search(arr, curr_index, key):
    if curr_index == -1:
        return -1
    if arr[curr_index] == key:
        return curr_index
    return search(arr, curr_index-1, key)

The time complexity of the above algorithm is O(n). 

Auxiliary Space: O(1) for iterative and O(n) for recursive.

Please refer complete article on Linear Search and Difference Between Recursive and Iterative Algorithms for more details!

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!