您的位置:首页 > 其它

二分查找(递归与非递归)

2017-03-14 16:14 281 查看
递归方法

[cpp] view
plain copy

print?

int BinSearch(int Array[],int low,int high,int key/*要找的值*/)

{

if (low<=high)

{

int mid = (low+high)/2;

if(key == Array[mid])

return mid;

else if(key<Array[mid])

return BinSearch(Array,low,mid-1,key);

else if(key>Array[mid])

return BinSearch(Array,mid+1,high,key);

}

else

return -1;

}

非递归方法

[cpp] view
plain copy

print?

int BinSearch(int Array[],int SizeOfArray,int key/*要找的值*/)

{

int low=0,high=SizeOfArray-1;

int mid;

while (low<=high)

{

mid = (low+high)/2;

if(key==Array[mid])

return mid;

if(key<Array[mid])

high=mid-1;

if(key>Array[mid])

low=mid+1;

}

return -1;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: