20140717 二分查找 递归和非递归
2014-07-17 18:56
281 查看
1、二分查找代码
二分查找: #include<iostream> using namespace std; int BinarySearch(int a[],int len,int value)//len是a中包含的元素熟练,如a={1,2,3},那么len=3, { int low=0,hi=len,mid=(low+hi)/2; while(low<=hi) { if(value==a[mid]) { return(a[mid]); } else if(a[mid]>value) { hi=mid-1; } else low=mid+1; mid=(low+hi)/2; } return -1; } void main() { int a[]={0,1,2,3,4,5,6,7,8,9}; int result=BinarySearch(a,9,0); //int result=BinarySearch(a,10,9); cout<<result<<endl; } 二分查找递归方法: int BinarySearch(int *a,int lo,int hi,int value) { if(lo>hi) return -1; int start=lo,end=hi,mid=(start+end)/2; if(a[mid]>value) end=mid-1; else if(a[mid]<value) start=mid+1; else return a[mid]; return BinarySearch(a,start,end,value); }
相关文章推荐
- 二分查找(递归与非递归)
- 二分查找(递归和非递归写法)
- C语言实现 二分查找数组中的Key值(递归和非递归)
- 二分查找,递归和非递归
- 二分查找递归和非递归
- 二分查找 递归与非递归 编程之美写法
- 二分查找递归和非递归
- 二分查找的递归和非递归写法
- 二分查找(递归与非递归)
- 数据结构与算法分析(Java语言描述)(15)—— 二分查找(递归与非递归)
- 斐波那契数列和二分查找的算法(递归与非递归)
- C 二分查找 递归与非递归的实现代码
- 递归与非递归进行二分查找
- 二分查找递归与非递归总结
- 二分查找-递归和非递归
- 二分查找与斐波那契数递归与非递归的时间复杂度与空间复杂度
- 二分查找的递归和非递归
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找的递归写法和非递归写法