Binary search is one of the highly efficient search algorithm with a complexity of log(n) as here we divide the target array to half n/2 each time till we get the target item , so for an array of size 8 . we get the element with in 3 operation.

Note **that binary search can be carried out only for a sorted array so it wont be always the best algorithm to use.**

For example , you have an unsorted array of unique element, to find a specific item using binary search , we first need to sort it. The best sorting algorithm complexity is O(nlogn) , after sorting we do binary search. This result in final complexity of nlogn + logn , and as nlogn is the higher term we drop logn , so final Big O is O(nlogn).

Instead if we just checked each element using a for loop , the complexity would have been just O(n) which was much better than O(nlogn).:

**So how binary search works:**

Assume we have an **array sorted in ascending order:**

[1,2,3,4,5,6,7,8]

Now we have to find index of **‘5’**

**Step 1:**so what we do is ,

**first check the midIndex in the array for the element.**