二分查找(迭代和递归)
2016-09-27 15:42
176 查看
二分查找大一的时候写过,现在有些忘了,再写一遍备用。
迭代版本
递归版本
迭代版本
#include<iostream> #include<algorithm> using namespace std; int binsearch(int a[],int n,int key){ int l=0,r=n-1; while(l<=r){ int m=(l+r)/2; if(a[m]==key) return m; else if(a[m]>key) r=m-1; else l=m+1; } return -1; } int main(){ int a[5]={5,3,8,7,4}; sort(a,a+5); cout<<binsearch(a,5,3); return 0; }
递归版本
#include<iostream> #include<algorithm> using namespace std; int bs(int s[],int l,int h,int key){ int m; if(l>h) return -1; else{ m=(l+h)/2; if(key==s[m]) return m; else if(key<s[m]) return bs(s,l,m-1,key); else return bs(s,m+1,h,key); } } int main(){ int s[5]={1,7,5,3,8}; sort(s,s+5); int l=0; int n=5; int h=n-1; cout<<bs(s,l,h,8); return 0; }
相关文章推荐
- 二分查找的递归实现和迭代实现
- [整理]二分查找搜索算法原理及递归,迭代方法实现
- 二分查找的递归与迭代实现
- 二分查找递归,迭代写法
- 【查找】二分查找:C++递归实现与迭代实现
- 迭代和递归分别实现二分查找
- 二分查找的递归实现和迭代实现
- 二分查找的循环实现和递归实现
- 二分查找的递归和非递归实现
- 递推递归练习P - M--二分查找
- 一个递归和非递归实现二分查找的代码
- 二分查找递归与非递归总结
- 递归—二分查找
- 二分查找递归实现
- 递推递归练习P - M--二分查找
- ruby普通二分查找和递归二分查找
- SQL 递归 可以用于权限查找。迭代自身没有用递归函数。
- 二分查找的循环和递归方法
- 二分查找——递归和非递归
- 二分查找(递归与非递归)