What is the difference between linear search and binary search?
Tags: coding
Published: 2023-12-19 10:22:21

Are you confused about the [difference between linear search and binary search](https://www.codingninjas.com/studio/library/difference-between-linear-search-and-binary-search) for small data? If yes, then this blog will not only help you clear this doubt but also tell you how these two work to find the target element in an array. So, let's get started. 



What is linear search?


Linear search is the most straightforward search in the world of programming. Linear search is also known as sequential search. Linear search is a search method that is used to search an item within an array containing multiple items in a random or sorted manner. 



In a linear search, the item is found by going through the array while checking each item one by one until the item being searched is encountered. If the target item is found, then the index at which it is found is printed. However, the target item is not found in the array; the output says, "Target item not found."



Here is an example of linear search in Python: 





Input





Output



The above code has an array, i.e. [10, 4, 7, 2, 8, 5]. The target element in the code is 8, meaning the code has to find the position of the number 8 in the array if it is there. Otherwise, it has to tell that there is no element in the array which compares similarly to the target element. 



So, if the code returns 'i', the target element has been found, and the result will be the index of the target element in the array. 



But, if the code returns the value -1, then it means that there is no item available, same as the target element and the code will print that "target element not found in the array". 



What is binary search?



Binary search is an advanced method of searching through a sorted array. It works by continuously cutting down the array in half and the newer halves into halves again. It's considered a more convenient and efficient algorithm to find an element in a sorted array. 



Here's how it works:





Input





Output



In the above image, there is a sorted array, i.e. [2, 4, 7, 10, 15, 18, 21]. Moreover, the target element is 15, and the code has to be found in the array. Now, unlike linear search, there are some different lines in the code. 



First, there are two terms, low and high, which are used to calculate the number of elements in the array. The low means the first index and the high means the last index. Then, there is a term called "mid", which will be found by adding low and high and dividing it by 2. So, it will give the middle index.



Now, there are three statements, namely, if, elif and else. 



"If" statement 

If statement will be applicable when the mid will is equal to the target element, and the search will terminate. 



"Elif" statement

Elif statement will be applied when the mid-index element does not equate to the target element and the mid-index element is smaller than the target. 



"Else" statement

This statement will apply when the mid-index element does not match the target element and the mid-index element is not smaller than the target. 



So, if the element is found in the middle, the search will end. However, if the element is not equal to the target and is smaller than the mid element, then the algorithm will limit the search to the upper half, where the elements greater than the mid element are placed. 



However, if the mid value is greater than the target, the search will be limited to the lower half, where the elements smaller than the mid element are placed. 



The process will be repeated until the target element is found or the whole array is searched, but the element isn't found. The index of the target element will be printed if the element is found. Otherwise, it will return -1, meaning the element not found will be printed. 



Difference between linear search and binary search



Array Type and Dimension



The primary difference between linear search and binary search is that the array can be sorted or unsorted in the case of linear search. It means the element will still be found if the array has randomly placed elements without any order. Also, a multidimensional array can be used. However, in binary search, the array must be sorted due to its working method. Moreover, only a single-dimensional array can be used. 



Time complexity



The time complexity of linear search is O(n), which means the algorithm's complexity will increase linearly as the number of elements increases. It is because n here stands for the number of elements. 



On the other hand, binary search has a time complexity of O(log n). So, due to the logarithmic nature of complexity, it is better than linear search. 



Code Complexity



Another difference between linear search and binary search is that Writing a linear search is comparatively easier than a binary search. 



Which is the best [system design course online](https://www.codingninjas.com/system-design) for interview preparation?



"Best System Design Course Online'' by Coding Ninjas is a great course to learn system design. It is best for those who are looking for a system design course online, especially for interview questions. It has more than 15 hours of content, along with five guided projects. Also, you get one-on-one mock interview practice sessions and one-on-one doubt-solving support as well. Also, to make this System Design Course Online easier for working professionals, cheat days and up to 60 days of pause are added. 



Wrapping Up



Binary search is more efficient for both small and big data sets if the data is sorted. So, if the array that contains the data is in a specific order, like ascending or descending, it is wiser to use a binary search. However, if the data is unsorted, then the linear search can be used as it can search through both sorted and unsorted arrays.