Avoiding overflow in getting mid index in Java (#25211)

* Avoiding overflow in getting mid index in Java

start + (end - start)/2 is preferable over (start + end)/2 to avoid overflow errors

* Update index.md
This commit is contained in:
Nitin Chauhan
2019-02-14 05:07:30 +05:30
committed by Randell Dawson
parent 7d30fdbe3a
commit ee9920fbb8

View File

@ -261,7 +261,7 @@ int binarySearch(int[] arr, int start, int end, int element)
{ {
while(start <= end) while(start <= end)
{ {
int mid = ( start + end ) / 2; int mid = start + ( end - start ) / 2;
if(arr[mid] == element) if(arr[mid] == element)
return mid; return mid;
if(arr[mid] < element) if(arr[mid] < element)
@ -276,9 +276,9 @@ int binarySearch(int[] arr, int start, int end, int element)
// Recursive Approach in Java // Recursive Approach in Java
int binarySearch(int[] arr, int start,int end , int element) int binarySearch(int[] arr, int start,int end , int element)
{ {
if(start <= end) if (end >= start)
{ {
int mid = ( start + end ) / 2; int mid = start + ( end - start ) / 2;
if(arr[mid] == element) if(arr[mid] == element)
return mid; return mid;
if(arr[mid] < element) if(arr[mid] < element)