二分查找(递归与非递归)超级无敌版 内附一个非常牛逼的链接

是否递归实现:在于判断条件后更改阀值继续循环至符合条件,还是对相应的子集重新本函数。

递归方法

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;  
} 

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

详解二分查找算法牛逼链接一

二分查找牛逼链接二


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部