When using only if, I had to return some integer
public class solution {
public static int binarySearch(int arr[], int x,int si,int ei){
if(si>ei){
return -1;
}
int mid=(si+ei)/2;
if(arr[mid]==x){
return mid;
}
if(arr[mid]>x){
return binarySearch(arr,x,si,mid-1);
}
if(arr[mid]<x){
return binarySearch(arr,x,mid+1,ei);
}
return 0;
}
}
but when using if-else-if, I don't have to return any integer, why?
public class solution {
public static int binarySearch(int arr[], int x,int si,int ei){
if(si>ei){
return -1;
}
int mid=(si+ei)/2;
if(arr[mid]==x){
return mid;
}
else if(arr[mid]>x){
return binarySearch(arr,x,si,mid-1);
}
else {
return binarySearch(arr,x,mid+1,ei);
}
}
}
Aucun commentaire:
Enregistrer un commentaire