// Efficient Code import java.util.*; import java.io.*; class GFG { static int bSearch(int arr[], int low, int high, int x) { if(low > high) return -1; int mid = (low + high) / 2; if(arr[mid] == x) return mid; else if(arr[mid] > x) return bSearch(arr, low, mid - 1, x); else return bSearch(arr, mid + 1, high, x); } static int search(int arr[], int x) { if(arr[0] == x) return 0; int i = 1; while(arr[i] < x) i = i * 2; if(arr[i] == x) return i; return bSearch(arr, i / 2 + 1, i - 1, x); } public static void main(String args[]) { int arr[] = {1, 2, 3, 40, 50}; int x = 4; System.out.println(search(arr, x)); // OUTPUT : -1 } } // Naive Code import java.util.*; import java.io.*; class GFG { static int search(int arr[], int x) { int i = 0; while(true) { if(arr[i] == x) return i; if(arr[i] > x) return -1; i++; } } public static void main(String args[]) { int arr[] = {1, 2, 3, 5, 5}; int x = 4; System.out.println(search(arr, x)); // OUTPUT : -1 } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter