14 Mart 2020 Cumartesi

Binary Search


static int binarySearch(int[] nums, int target) {
  
 if(nums == null || nums.length == 0) return -1;
 
 int left = 0, right = nums.length;
 int mid = left + (right - left)/2;
 
 if(nums[mid] == target) return mid;
 else if(nums[mid] < target) left = mid + 1; // bu durumda target sagdadir
 else right = mid; // bu durumda target soldadir.sola gideriz
 // Ancak left = right olunca target elemani bulmus oluruz
 if(left != nums.length && nums[left] == target) return left;
 
 return -1;
}