我对以下两个陈述有点困惑。
下面的程序是finds the index of an element out of a sorted array[no duplicates] using binary search.
int bin(int *arr,int l,int h,int k)
{
int mid;
if(l>h)
return -1;
if(l==h)
{
return arr[l]==k?l:-1;
}
else
{
mid=(l+h)>>1;
if(arr[mid]==k)
return mid;
else if(k>arr[mid])
bin(arr,mid+1,h,k);
else
bin(arr,l,mid-1,k);
}
}
我在程序中没有任何问题[工作完美]:
我对以下两个陈述感到困惑:
bin(arr,l,mid-1,k); http://ideone.com/p1o5U
返回 bin(arr,l,mid-1,k); http://ideone.com/lMhgB
使用上述任何语句都会给出正确的结果。
哪个语句在时间方面更有效?
How the program is working fine even without return statement?