二分查找-递归和非递归
来源:互联网 发布:万得资讯软件 编辑:程序博客网 时间:2024/05/19 09:15
1、非递归实现
int search(int a[], int n, int key){int h = 0;int t = n-1;int m;while(h < t){int m = (h + t)>>1;if(a[m] == key){return m;}else if(a[m] > key){t = m-1;}else{h = m+1;}}return -1;}
2、递归实现
int search(int a[], int h, int t, int key){if(h < t){int m = (h + t)/2;if(a[m] == key)return m;else if(a[m] > key){return (search(a, h, m-1, key));}else{return (search(a, m+1, t,key));}}return -1;}二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。假设其数组长度为n,其算法复杂度为o(log(n))
0 0
- 二分递归查找和非递归查找
- 二分查找递归和非递归实现
- 二分查找算法 递归和非递归
- 二分查找(递归和非递归)
- 递归和非递归的二分查找
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 二分查找递归和非递归
- 二分查找-递归和非递归
- 二分查找,递归和非递归
- 二分查找递归和非递归实现
- 二分查找递归和非递归
- 递归和非递归实现二分查找
- 二分查找的递归和非递归
- 二分查找递归非递归
- 二分查找递归非递归
- 二分查找 非递归
- 非递归二分查找
- Android 短信验证
- Java创建/遍历二叉树
- UIScrollView学习<1>理解 contentSize、contentInset和contentOffset
- Linux 每天一命定之echo
- mysql 性能优化方向
- 二分查找-递归和非递归
- Android多线程下载文件
- 国外程序员整理的C++ 资源大全
- mdadm使用详解及RAID 5简单分析
- 手机号码归属地查询api接口
- 通过URL获取数据
- leetcode-29 Divide Two Integers
- C++ o matching function for call to 'transform...错误
- jdbc1.0、jdbc2.0、jdbc3.0、jdbc4.0的区别