二分查找的递归与非递归!
2012-05-15 19:44
183 查看
递归:
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;
}
非递归:
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;
}
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;
}
非递归:
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;
}
相关文章推荐
- 数据结构:二分查找的递归与非递归实现--C实现
- 二分查找的递归与非递归实现
- 二分查找,递归与非递归实现
- PHP递归与非递归实现二分查找
- 二分查找的递归与非递归实现【Java版】
- 二分查找算法的递归与非递归实现
- 二分查找的递归与非递归实现
- 二分查找的递归与非递归实现
- 数据结构10:二分查找的递归与非递归表示与实现
- C++ 二分查找的递归与非递归实现
- 二分查找的递归与非递归实现
- 二分查找(递归与非递归实现)
- 二分查找算法递归和非递归实现
- 二分查找(迭代和递归)
- 递归与非递归下二叉查找数的插入·查找和删除
- 二分查找(递归与非递归)
- 没有递归的二分查找
- 递归实现二分查找
- 二分查找递归实现
- 二分查找的递归和非递归