二分查找(递归与非递归)超级无敌版 内附一个非常牛逼的链接
是否递归实现:在于判断条件后更改阀值继续循环至符合条件,还是对相应的子集重新本函数。
递归方法
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;
}
二分查找(递归与非递归)
详解二分查找算法牛逼链接一
二分查找牛逼链接二
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
