二分查找(递归与非递归)
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;
}
[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;
}
相关文章推荐
- 二分查找——递归与非递归
- 递归和非递归的二分查找
- 二分查找、折半查找、递归与非递归
- 二分查找的两种实现方式(递归和非递归)--python实现
- c++实现二分查找 递归和非递归
- 二分查找(递归与非递归)
- 二分查找——递归和非递归
- leetcode 35. Search Insert Position-二分查找|递归|非递归
- 二分查找的递归和非递归
- 二分查找的递归与非递归
- 二分查找——递归与非递归
- C语言实现 二分查找数组中的Key值(递归和非递归)
- 二分查找(递归与非递归)
- 二分查找递归和非递归(java实现)
- 递归与非递归进行二分查找
- 二分查找递归与非递归总结
- 二分查找(递归与非递归)
- 递归和非递归的二分查找
- 二分查找(递归和非递归写法)
- C 二分查找 递归与非递归