二分查找算法
来源:互联网 发布:企业记账软件 编辑:程序博客网 时间:2024/06/07 03:05
面试中被问到二分查找算法,一脸懵逼,没用过啊。回来看看。
题目:一个有序数组,查找值X,返回第一次出现该值的位置
思路:用递归与分治算法实现。(分堆查)
/** * 递归实现 二分查找算法 返回第一次出现该值的位置 * @param arr 有序数组 * @param from 起始位置 * @param to 截止位置 * @param target 搜索值 * @return */ public static int bSearch(long[] arr,int from,int to, int target){ int result = -1; //中间值 int mid = (from+to)>>>1; System.out.println(from +"==" +to+"==="+mid); //1,如果查不到返回-1 if(from>to) return result; //2,如果有值,返回下标 递归方法出口 if(arr[mid]==target){ result = mid; System.out.print("zhi="+arr[mid]); }else if(arr[mid]>target){ //3,如果中间值大于查询的值,递归调用向前查 result = bSearch(arr,from,mid-1,target); }else{ //3,如果中间值小于查询的值,递归调用向后查 result = bSearch(arr,mid+1,to,target); } return result;}
long[] arr = new long[100]; for(int i=0;i<100;i++){ arr[i] = Math.round(Math.random()*100); } Arrays.sort(arr); System.out.println("index"+bSearch(arr,0,99,24)+" ");
阅读全文
0 0
- 查找算法 二分查找
- 查找算法:二分查找
- 算法--查找--二分查找
- 查找算法---二分查找
- [算法]二分查找算法
- 算法----二分查找算法
- 查找算法:二分查找算法
- [转载]查找算法----二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法_二分查找
- 算法 二分查找(折半查找)
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- 查找算法之二分查找
- window7如何搭建FTP服务器
- 对象序列化
- 书签管理
- 教你一招:基于数据驱动的接口单元测试
- linux下多版本python环境配置
- 二分查找算法
- HDU OJ 1000 A + B Problem
- UE4学习(二)基础内容
- 随笔--写在培训两月
- redis 数据类型详解 以及 redis适用场景场合
- 好评度前五的扫地机器人
- jQuery 效果
- MySQL对数据表进行分组查询
- 删除exclipse启动时不存在的workspace