次の2つのステートメントで少し混乱しています。
以下のプログラムは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);
}
}
プログラムに問題はありません[完璧に動作しています]:
私は次の2つのステートメントで混乱しています:
bin(arr、l、mid-1、k); http://ideone.com/p1o5U
return bin(arr、l、mid-1、k); http://ideone.com/lMhgB
上記のステートメントのいずれかを使用すると、正しい結果が得られます。
時間の点でより効率的なステートメントはどれですか?
How the program is working fine even without return statement?