1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| public class BinarySearch {
static int binary_search_recursion(int arr[], int start, int end, int khey) { if (start > end) return -1; int mid = start + (end - start) / 2; if (arr[mid] > khey) return binary_search_recursion(arr, start, mid - 1, khey); if (arr[mid] < khey) return binary_search_recursion(arr, mid + 1, end, khey); return mid; }
static int binary_search_loop(int arr[], int start, int end, int khey) { int mid; while (start <= end) { mid = start + (end - start)/2; if (arr[mid] < khey) start = mid + 1; else if (arr[mid] > khey) end = mid - 1; else return mid; } return -1; }
public static void main(String[] args) { int[] a={1,2,3,4,6,7,8,9,10}; int mid=binary_search_recursion(a,0,a.length-1,2); int mid1=binary_search_loop(a,0,a.length-1,2); System.out.println(mid); System.out.println(mid1); } }
|