二分查找与递归算法
来源:互联网 发布:java中贪心算法 编辑:程序博客网 时间:2024/05/21 07:11
1.给一个有序数组a[],大小为n,且n非常大,求数组中是否存在k? 这里我们采用二分查找算法结合递归/循环,降低时间复杂度来求解。
//二分查找的递归算法,k为要查找的数
int recSearch(int a[],int low,int high,int k) {
int mid;
if (low >high) return -1;
mid = low + (high - low)/2;
if (a[mid] == k ) return k;
else{
if (a[mid]>k) high = mid -1;
else low = mid + 1;
returnrecSearch(a, low, high, k);
}
return -1;
}
//二分查找算法的非递归实现,k为要查找的数
int search(int a[],int low,int high,int k) {
int mid;
while (low<=high) {
mid = low + (high - low)/2;
if (a[mid] == k ) return k;
elseif (a[mid]>k)
high = mid -1;
else
low = mid +1;
}
return -1;
}
2.计算从原点到达(m,n)的走发数
int road (int m, int n) {
if (n<0 || m<0) {
return -1;
}elseif( m==0 || n==0){
return1;
}else
returnroad(m-1, n)+road(m, n-1);
}
- 二分查找与递归算法
- 二分查找递归与非递归算法
- 【算法·递归与分治】二分查找
- java数据结构与算法-递归二分查找
- 递归二分查找算法
- 二分查找的递归与1非递归算法
- 二分查找的递归与非递归算法
- 二分查找算法的递归与非递归实现
- 二分查找的非递归与递归算法
- 二分查找算法(递归与非递归实现)
- 【数据结构与算法】二分查找递归非递归实现
- 二分查找算法的递归与非递归实现
- 二分查找算法递归实现
- JAVA二分递归查找算法
- 递归算法实现二分查找
- 【算法】二分查找递归实现
- 《数据结构与算法》学习笔记19 递归_二分查找
- 数据结构与算法 —— 二分查找的递归方式
- linxu find 命令 搜索字符串
- Python学习之路——强力推荐的Python学习资料
- 由吃饭想到的产品痛点问题
- [剑指offer]求字符的所有组合
- 目前才知道关于rar的真相
- 二分查找与递归算法
- XCode环境变量及路径设置以及绝对和相对路径
- 第2条:遇到多个构造器参数时要考虑用构建器
- Windows下安装使用OpenLDAP
- ARM体系结构介绍
- 双系统重装系统后,grub命令行修复linux系统
- HDU 3416 —— Marriage Match IV(最短路+最大流)
- 解决Virtual Box 下安装Mac OS X时出现的“hfs: summary table not allowed on FS with block size of 2048”问题
- android对话框和提示框