折半查找(递归算法)
2016-01-31 15:55
267 查看
#include<stdio.h> #include<stdlib.h> int a[1000],k; int f(int s,int t){ int m; m=(s+t)/2; if(a[m]==k) return m; else if(k>a[m] && m+1<=t) return f(m+1,t); else if(k<a[m] && s<=m-1) return f(s,m-1); return -1; } int main(){ int i,j,m,n,ans=-1; scanf("%d%d",&n,&k); for(i=1;i<=n;i++) scanf("%d",&a[i]); printf("%d\n",f(1,n)); return 0; }
相关文章推荐
- OpenWrt 自学笔记(5)------lua 环境搭建
- Day8~11(2016/1/28~2016/1/31)
- 经验谈系列 我们应该怎么给父母配电脑
- Linux进程管理
- Poj 3461 Oulipo
- 各种浏览器开启JavaScript脚本方法
- 理解矩阵
- 递归求斐波那契数列
- C++优先队列 合并果子
- List-style-type属性失效
- HDU1078 FatMouse and Cheese [记忆化搜索DFS]
- git工具使用
- 统计排序
- 选择排序
- MyBatis学习总结
- 动态规划解回文
- SPOJ 196 MUSKET - Musketeers 火枪手 环类问题
- 冒泡排序
- 抽屉效果
- 排序和正则表达式的应用