# 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[].
```

## Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.

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:

## C++

 `// C++ code to linearly search x in arr[]. If x ` `// is present then return its location, otherwise ` `// return -1 ` ` `  `#include ` `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; ` `} ` ` `  `int` `main(``void``) ` `{ ` `    ``int` `arr[] = { 2, 3, 4, 10, 40 }; ` `    ``int` `x = 10; ` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr); ` `    ``int` `result = search(arr, n, x); ` `   ``(result == -1)? cout<<``"Element is not present in array"`  `                 ``: cout<<``"Element is present at index "` `<

## C

 `// C code to linearly search x in arr[]. If x ` `// is present then return its location, otherwise ` `// return -1 ` ` `  `#include ` ` `  `int` `search(``int` `arr[], ``int` `n, ``int` `x) ` `{ ` `    ``int` `i; ` `    ``for` `(i = 0; i < n; i++) ` `        ``if` `(arr[i] == x) ` `            ``return` `i; ` `    ``return` `-1; ` `} ` ` `  `int` `main(``void``) ` `{ ` `    ``int` `arr[] = { 2, 3, 4, 10, 40 }; ` `    ``int` `x = 10; ` `    ``int` `n = ``sizeof``(arr) / ``sizeof``(arr); ` `    ``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``; ` `} ` ` `  `public` `static` `void` `main(String args[]) ` `{ ` `    ``int` `arr[] = { ``2``, ``3``, ``4``, ``10``, ``40` `};  ` `    ``int` `x = ``10``; ` `     `  `    ``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); ` `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; ` `    ``} ` `     `  `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int``[] arr = { 2, 3, 4, 10, 40 };  ` `        ``int` `x = 10; ` `         `  `        ``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

 ` `

Output:

```Element is present at index 3
```

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

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

Article Tags :
Practice Tags :

140

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.