Binary Search Algorithm
What is Search?
Search is a process of finding a value in a list of values. In other words, searching is the process
of locating given value position in a list of values.
Binary Search Algorithm
Binary search algorithm finds a given element in a list of elements with O(log n) time complexity
where n is total number of elements in the list. The binary search algorithm can be used with only
a sorted list of elements. That means the binary search is used only with a list of elements that
are already arranged in an order. The binary search can not be used for a list of elements
arranged in random order. This search process starts comparing the search element with the
middle element in the list. If both are matched, then the result is "element found". Otherwise, we
check whether the search element is smaller or larger than the middle element in the list. If the
search element is smaller, then we repeat the same process for the left sublist of the middle
element. If the search element is larger, then we repeat the same process for the right sublist of
the middle element. We repeat this process until we find the search element in the list or until we
left with a sublist of only one element. And if that element also doesn't match with the search
element, then the result is "Element not found in the list".
Binary search is implemented using following steps...
Step 1 - Read the search element from the user.
Step 2 - Find the middle element in the sorted list.
Step 3 - Compare the search element with the middle element in the sorted list.
Step 4 - If both are matched, then display "Given element is found!!!" and terminate the
function.
Step 5 - If both are not matched, then check whether the search element is smaller or
larger than the middle element.
Step 6 - If the search element is smaller than middle element, repeat steps 2, 3, 4 and 5
for the left sublist of the middle element.
Step 7 - If the search element is larger than middle element, repeat steps 2, 3, 4 and 5
for the right sublist of the middle element.
Step 8 - Repeat the same process until we find the search element in the list or until
sublist contains only one element.
Step 9 - If that element also doesn't match with the search element, then display
"Element is not found in the list!!!" and terminate the function.
1. class BinarySearchExample{
2. public static void binarySearch(int arr[], int first, int last, int key){
3. int mid = (first + last)/2;
4. while( first <= last ){
5. if ( arr[mid] < key ){
6. first = mid + 1;
7. }else if ( arr[mid] == key ){
8. System.out.println("Element is found at index: " + mid);
9. break;
10. }else{
11. last = mid - 1;
12. }
13. mid = (first + last)/2;
14. }
15. if ( first > last ){
16. System.out.println("Element is not found!");
17. }
18. }
19. public static void main(String args[]){
20. int arr[] = {10,20,30,40,50};
21. int key = 30;
22. int last=arr.length-1;
23. binarySearch(arr,0,last,key);
24. }
25. }