# Serial and binary search algorithm in data structure

We can leverage this information to decrease the number of items we need to look at to find our target. We know that if we look at a random item in the data let's say the middle item and that item is greater than our target, then all items to the right of that item will also be greater than our target.

This means that we only need to look at the left part of the data. Basically, each time we search for the target and miss, we can eliminate half of the remaining items. This gives us a nice O log n time complexity. So you should never sort data just to perform a single binary search later on.

But if you will be performing many searches say at least O log n searches , it may be worthwhile to sort the data so that you can perform binary searches. You might also consider other data structures such as a hash table in such situations. A linear search starts at the beginning of a list of values, and checks 1 by 1 in order for the result you are looking for. A binary search starts in the middle of a sorted array, and determines which side if any the value you are looking for is on.

That "half" of the array is then searched again in the same fashion, dividing the results in half by two each time. Make sure to deliberate about whether the win of the quicker binary search is worth the cost of keeping the list sorted to be able to use the binary search.

Open the book at the half way point and look at the page. Ask yourself, should this person be to the left or to the right. Repeat this procedure until you find the page where the entry should be and then either apply the same process to columns, or just search linearly along the names on the page as before.

Linear search also referred to as sequential search looks at each element in sequence from the start to see if the desired element is present in the data structure.

When the amount of data is small, this search is fast. Its easy but work needed is in proportion to the amount of data to be searched.

Doubling the number of elements will double the time to search if the desired element is not present. Binary search is efficient for larger array.

In this we check the middle element. If the value is bigger that what we are looking for, then look in the first half;otherwise,look in the second half. Repeat this until the desired item is found.

The table must be sorted for binary search. It eliminates half the data at each iteration. If we have elements to search, binary search takes about 10 steps, linear search steps. Binary Search finds the middle element of the array. Checks that middle value is greater or lower than the search value.

If it is smaller, it gets the left side of the array and finds the middle element of that part. If it is greater, gets the right part of the array. It loops the operation until it finds the searched value. Or if there is no value in the array finishes the search. Also you can see visualized information about Linear and Binary Search here: Thank you for your interest in this question.

Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site the association bonus does not count. Would you like to answer one of these unanswered questions instead? Email Sign Up or sign in with Google. What is the difference between Linear search and Binary search?

Bill the Lizard k Please read the appropriate sections in your course material which, has hopefully, been selected and prepared by your instructor s. Failing that, a general wikipedia, c2 or google search can answer may of these sort of questions. A linear search would ask: A criteria is set up before the search begins. If no match is found, then the process will return the appropriate message.

Serial search is fairly simple to code. For example the pseudo-code below shows the algorithm in action. Each item is checked until either a match is found or the loop ends and the 'return 'no match found' is reached. Good performance over small to medium lists.

Computers are now very powerful and so checking potentially every element in the list for a match may not be an issue with lists of moderate length. The list does not need to be in any order.

Other algorithms only work because they assume that the list is ordered in a certain way. Serial searching makes no assumption at all about the list so it will work just as well with a randomly arranged list as an ordered list.

Not affected by insertions and deletions. Some algorithms assume the list is ordered in a certain way. So if an item is inserted or deleted, the computer will need to re-order the list before that algorithm can be applied. The overhead of doing this may actually mean that serial searching performs better than other methods. May be too slow over large lists.