C 递归二分法查找
来源:互联网 发布:sqldeveloper配置java 编辑:程序博客网 时间:2024/04/27 15:31
二分法使用了折半查找的思想,不断的变化,数组下标的起始位置(begin)和终止位置(end)来进行搜索。
前提:二分法查找的前提是数组必须是有序的(如果包含重复值,将输出第一个值得下标)
我们使用两种算法,解决二分查找:
public class Solution {//给定一个数组,数组里面下标加起来等于 给定的目标数字,求下标public static void main(String[] args) {Solution solution=new Solution();int[] number = {1,2,3,4,5,7,9,11,18,23,56,100,201,202};System.out.println(solution.sort(number, 0, number.length, 56));System.out.println(solution.otherBinarySearch(number, 0, number.length, 56));}//递归的思想public int sort(int[] number,int begin,int end,int index) { int middle=(begin+end)/2; if(begin>end){ return -1; //没有找到返回 }else if(number[middle]==index){ return middle; //找到返回 }else if(index>number[middle]){//比中间这个值大,begin+1 return sort(number,middle+1,end, index); }else if(index<number[middle]){//比中间值小 end-1; return sort(number, begin, middle-1, index); }else { return -1; } }//采用非递归的算法public int otherBinarySearch(int[] number, int begin, int end, int index) { while(begin<=end){ int mindle=(begin+end)/2; if(number[mindle]>index){ end--; }else if(number[mindle]<index){ begin++; }else if(number[mindle]==index){ return mindle; } } return -1; }
}
0 0
- C 递归二分法查找
- 二分法递归查找代码
- 二分法递归查找
- 递归二分法查找
- 二分法查找递归方式()
- 递归-----二分法查找
- 递归二分法查找
- 二分法查找(C/C++)
- 使用递归实现二分法查找
- 简单递归—二分法查找
- 二分法查找非递归算法
- 实现二分法查找(递归实现)
- C++: 二分法查找
- C二分法查找
- 【C语言】二分法查找
- C语言二分法查找
- 二分法查找(C)
- 二分法查找(递归和非递归)
- 深度学习caffe实战笔记(4)Windows caffe平台下跑cifar10
- 【YOLO学习】使用YOLO v2训练自己的数据
- Linux查看网络和IO性能问题
- js封装from表单数据为json串进行ajax提交
- Java考试题(四)
- C 递归二分法查找
- 关于友元函数
- 微信小程序-知亦行(选项卡切换,shoush不滑动)
- Bootstrap总结
- 软件开发生命周期
- java对象流
- JavaScript深入理解之闭包
- Java考试题(五)
- butterKnife的使用