Known complexities for average, best and worst cases are considered as follows :
Worst case performance = O(log n)
Best case performance = O(1)
Average case performance = O(log n)
Following is the iterative implementation of binary search algorithm in Java.
package basics;
import java.util.Arrays;
public class IterativeBinarySearch {
public static int index( int[] input, int key )
{
int low = 0;
int high = input.length-1;
while( low<=high )
{
int mid = low+(high-low)/2;
if( key<input[mid] )
high = mid-1;
else if( key>input[mid] )
low = mid+1;
else
return mid;
}
return -1;
}
public static void main(String[] args) {
int[] list = {22,55,66,11,32,56,67,89,95,10};
Arrays.sort(list);
int itemIndex = index(list, 22);
System.out.println(itemIndex);
itemIndex = index(list, 11);
System.out.println(itemIndex);
itemIndex = index(list, 67);
System.out.println(itemIndex);
itemIndex = index(list, 10);
System.out.println(itemIndex);
itemIndex = index(list, 101);
System.out.println(itemIndex);
}
}
Create a IterativeBinarySearch.java file in your workspace.
When the main method inside the IterativeBinarySearch class executed it is going to print :
2
1
7
0
-1
No comments:
Post a Comment