Linear Search

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 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 elements, return -1.


Example:
linear-search1

C/C++

// C++ code for linearly search x in arr[].  If x 
// is present  then return its  location,  otherwise
// return -1
int search(int arr[], int n, int x)
{
    int i;
    for (i = 0; i < n; i++)
        if (arr[i] == x)
         return i;
    return -1;
}

Java

// Java code for linearly search x in arr[].  If x 
// is present  then return its  location,  otherwise
// return -1
class LinearSearch
{
    // This function returns index of element x in arr[]
    static int search(int arr[], int n, int x)
    {
        for (int i = 0; i < n; i++)
        {
            // Return the index of the element if the element
            // is found
            if (arr[i] == x)
                return i;
        }
 
        // return -1 if the element is not found
        return -1;
    }
} 

Python

# Python code for linearly search x in arr[].  If x
# is present then return its  location,  otherwise 
# return -1
def search(arr, x):

    for i in range(len(arr)):

        if arr[i] == x:
            return i

    return -1

PHP

<?php
// PHP code for linearly search 
// x in arr[]. If x is present 
// then return its location, 
// otherwise return -1
function search($arr, $n, $x)
{
    $i;
    for ($i = 0; $i < $n; $i++)
        if ($arr[$i] == $x)
        return $i;
    return -1;
}

// This code is contributed
// by jit_t
?>



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

Linear search is rarely used practically because other search algorithms such as the binary search algorithm and hash tables allow significantly faster searching comparison to Linear search.



Also See – Binary Search

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above



My Personal Notes arrow_drop_up

Improved By : jit_t




Practice Tags :

Recommended Posts:



1.1 Average Difficulty : 1.1/5.0
Based on 215 vote(s)






User Actions