Skip to content
Related Articles

Related Articles

Linear Search
  • Difficulty Level : Basic
  • Last Updated : 19 Apr, 2021

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

Example: 



C++




// C++ code to linearly search x in arr[]. If x
// is present then return its location, otherwise
// return -1
 
#include <iostream>
using namespace std;
 
int search(int arr[], int n, int x)
{
    int i;
    for (i = 0; i < n; i++)
        if (arr[i] == x)
            return i;
    return -1;
}
 
// Driver code
int main(void)
{
    int arr[] = { 2, 3, 4, 10, 40 };
    int x = 10;
    int n = sizeof(arr) / sizeof(arr[0]);
   
    // Function call
    int result = search(arr, n, x);
    (result == -1)
        ? cout << "Element is not present in array"
        : cout << "Element is present at index " << result;
    return 0;
}

C




// C code to linearly search x in arr[]. If x
// is present then return its location, otherwise
// return -1
 
#include <stdio.h>
 
int search(int arr[], int n, int x)
{
    int i;
    for (i = 0; i < n; i++)
        if (arr[i] == x)
            return i;
    return -1;
}
 
// Driver code
int main(void)
{
    int arr[] = { 2, 3, 4, 10, 40 };
    int x = 10;
    int n = sizeof(arr) / sizeof(arr[0]);
   
    // Function call
    int result = search(arr, n, x);
    (result == -1)
        ? printf("Element is not present in array")
        : printf("Element is present at index %d", result);
    return 0;
}

Java




// Java code for linearly searching x in arr[]. If x
// is present then return its location, otherwise
// return -1
 
class GFG
{
    public static int search(int arr[], int x)
    {
        int n = arr.length;
        for (int i = 0; i < n; i++)
        {
            if (arr[i] == x)
                return i;
        }
        return -1;
    }
 
    // Driver code
    public static void main(String args[])
    {
        int arr[] = { 2, 3, 4, 10, 40 };
        int x = 10;
 
        // Function call
        int result = search(arr, x);
        if (result == -1)
            System.out.print(
                "Element is not present in array");
        else
            System.out.print("Element is present at index "
                             + result);
    }
}

Python3




# Python3 code to linearly search x in arr[].
# If x is present then return its location,
# otherwise return -1
 
 
def search(arr, n, x):
 
    for i in range(0, n):
        if (arr[i] == x):
            return i
    return -1
 
 
# Driver Code
arr = [2, 3, 4, 10, 40]
x = 10
n = len(arr)
 
# Function call
result = search(arr, n, x)
if(result == -1):
    print("Element is not present in array")
else:
    print("Element is present at index", result)

C#




// C# code to linearly search x in arr[]. If x
// is present then return its location, otherwise
// return -1
using System;
 
class GFG {
    public static int search(int[] arr, int x)
    {
        int n = arr.Length;
        for (int i = 0; i < n; i++)
        {
            if (arr[i] == x)
                return i;
        }
        return -1;
    }
 
    // Driver code
    public static void Main()
    {
        int[] arr = { 2, 3, 4, 10, 40 };
        int x = 10;
 
        // Function call
        int result = search(arr, x);
        if (result == -1)
            Console.WriteLine(
                "Element is not present in array");
        else
            Console.WriteLine("Element is present at index "
                              + result);
    }
}
 
// This code is contributed by DrRoot_

PHP




<?php
// PHP code for linearly search x in arr[].
// If x is present then return its location,
// otherwise return -1
 
function search($arr, $x)
{
    $n = sizeof($arr);
    for($i = 0; $i < $n; $i++)
    {
        if($arr[$i] == $x)
            return $i;
    }
    return -1;
}
 
// Driver Code
$arr = array(2, 3, 4, 10, 40);
$x = 10;
 
// Function call
$result = search($arr, $x);
if($result == -1)
    echo "Element is not present in array";
else
    echo "Element is present at index " ,
                                 $result;
 
// This code is contributed
// by jit_t
?>

Javascript




<script>
 
// Javascript code to linearly search x in arr[]. If x
// is present then return its location, otherwise
// return -1
 
function search(arr, n, x)
{
    let i;
    for (i = 0; i < n; i++)
        if (arr[i] == x)
            return i;
    return -1;
}
 
// Driver code
 
    let arr = [ 2, 3, 4, 10, 40 ];
    let x = 10;
    let n = arr.length;
 
    // Function call
    let result = search(arr, n, x);
    (result == -1)
        ? document.write("Element is not present in array")
        : document.write("Element is present at index " + result);
 
// This code is contributed by Manoj
 
</script>
Output
Element is present at index 3

The time complexity of the 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.

Improve Linear Search Worst-Case Complexity

  1. if element Found at last  O(n) to O(1)
  2. if element Not found O(n) to O(n/2)

Below is the implementation:

C++14




// C++ program for linear search
#include<bits/stdc++.h>
using namespace std;
 
void search(vector<int> arr, int search_Element)
{
    int left = 0;
    int length = arr.size();
    int position = -1;
      int right = length - 1;
       
    // Run loop from 0 to right
    for(left = 0; left <= right;)
    {
         
        // If search_element is found with
        // left variable
        if (arr[left] == search_Element)
        {
             
            position = left;
            cout << "Element found in Array at "
                 << position + 1 << " Position with "
                 << left + 1 << " Attempt";
                
            break;
        }
       
        // If search_element is found with
        // right variable
        if (arr[right] == search_Element)
        {
            position = right;
            cout << "Element found in Array at "
                 << position + 1 << " Position with "
                 << length - right << " Attempt";
                
            break;
        }
        left++;
        right--;
    }
 
    // If element not found
    if (position == -1)
        cout << "Not found in Array with "
             << left << " Attempt";
}
 
// Driver code
int main()
{
    vector<int> arr{ 1, 2, 3, 4, 5 };
    int search_element = 5;
     
    // Function call
    search(arr, search_element);
}
     
// This code is contributed by mayanktyagi1709

Java




// Java program for linear search
 
import java.io.*;
 
class GFG
{
 
    public static void search(int arr[], int search_Element)
    {
        int left = 0;
        int length = arr.length;
        int right = length - 1;
        int position = -1;
 
        // run loop from 0 to right
        for (left = 0; left <= right;)
        {
             
            // if search_element is found with left variable
            if (arr[left] == search_Element)
            {
                position = left;
                System.out.println(
                    "Element found in Array at "
                    + (position + 1) + " Position with "
                    + (left + 1) + " Attempt");
                break;
            }
           
            // if search_element is found with right variable
            if (arr[right] == search_Element)
            {
                position = right;
                System.out.println(
                    "Element found in Array at "
                    + (position + 1) + " Position with "
                    + (length - right) + " Attempt");
                break;
            }
             
            left++;
            right--;
        }
 
        // if element not found
        if (position == -1)
            System.out.println("Not found in Array with "
                               + left + " Attempt");
    }
   
    
    // Driver code
    public static void main(String[] args)
    {
        int arr[] = { 1, 2, 3, 4, 5 };
        int search_element = 5;
       
        // Function call
        search(arr,search_element);
    }
}

Python3




# Python3 program for linear search
def search(arr, search_Element):
    left = 0
    length = len(arr)
    position = -1
    right = length - 1
 
    # Run loop from 0 to right
    for left in range(0, right, 1):
 
        # If search_element is found with
        # left variable
        if (arr[left] == search_Element):
            position = left
            print("Element found in Array at ", position +
                  1, " Position with ", left + 1, " Attempt")
            break
 
        # If search_element is found with
        # right variable
        if (arr[right] == search_Element):
            position = right
            print("Element found in Array at ", position + 1,
                  " Position with ", length - right, " Attempt")
            break
        left += 1
        right -= 1
 
    # If element not found
    if (position == -1):
        print("Not found in Array with ", left, " Attempt")
 
# Driver code
arr = [1, 2, 3, 4, 5]
search_element = 5
 
# Function call
search(arr, search_element)
 
# This code is contributed by Dharanendra L V.

C#




// C# program for linear search
using System;
class GFG
{
 
    public static void search(int []arr,
                              int search_Element)
    {
        int left = 0;
        int length = arr.Length;
        int right = length - 1;
        int position = -1;
 
        // run loop from 0 to right
        for (left = 0; left <= right;)
        {
             
            // if search_element is found with left variable
            if (arr[left] == search_Element)
            {
                position = left;
                Console.WriteLine(
                    "Element found in Array at "
                    + (position + 1) + " Position with "
                    + (left + 1) + " Attempt");
                break;
            }
           
            // if search_element is found with right variable
            if (arr[right] == search_Element)
            {
                position = right;
                Console.WriteLine(
                    "Element found in Array at "
                    + (position + 1) + " Position with "
                    + (length - right) + " Attempt");
                break;
            }
             
            left++;
            right--;
        }
 
        // if element not found
        if (position == -1)
            Console.WriteLine("Not found in Array with "
                               + left + " Attempt");
    }
   
    
    // Driver code
    public static void Main(String[] args)
    {
        int []arr = { 1, 2, 3, 4, 5 };
        int search_element = 5;
       
        // Function call
        search(arr,search_element);
    }
}
 
// This code is contributed by 29AjayKumar

Javascript




<script>
     
// Javascript program for linear search
 
function search(arr, search_Element)
{
    let left = 0;
    let length = arr.length;
    let right = length - 1;
    let position = -1;
 
    // Run loop from 0 to right
    for(left = 0; left <= right;)
    {
         
        // If search_element is found
        // with left variable
        if (arr[left] == search_Element)
        {
            position = left;
            document.write(
                "Element found in Array at " +
                (position + 1) + " Position with " +
                    (left + 1) + " Attempt");
            break;
        }
        
        // If search_element is found
        // with right variable
        if (arr[right] == search_Element)
        {
            position = right;
            document.write(
                "Element found in Array at " +
                (position + 1) + " Position with " +
                (length - right) + " Attempt");
            break;
        }
        left++;
        right--;
    }
 
    // If element not found
    if (position == -1)
        document.write("Not found in Array with " +
                       left + " Attempt");
}
      
// Driver code
let arr = [ 1, 2, 3, 4, 5 ];
let search_element = 5;
 
// Function call
search(arr, search_element);
 
// This code is contributed by code_hunt
 
</script>
Output
Element found in Array at 5 Position with 1 Attempt

Also See – Binary Search

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :