二分查找
来源:互联网 发布:短网址源码 编辑:程序博客网 时间:2024/05/29 11:23
一.概述
二分查找也是面试中问的比较多的,虽然不是很难,但是要想一次正确写出来可不容易,下面我们一起来看看。
二.实现
/** * * @param arr 要查找的数组,必须是有序的 * @param a 要查找的元素 * @return 元素所在的位置 */ public int binarySearch(int[] arr, int a){ int min = 0;//初始左边界 int max = arr.length-1;//初始右边界 //判断条件为左边界不大于右边界 while(min<=max){ //每次查找都要改变中间元素的位置 int mid = (min+max)>>1; if(arr[mid]>a){//中间元素大于要查找的元素,那么右边界就是中间元素的左边位置 max = mid - 1 ; }else if(arr[mid]<a){//中间元素小于要查找的元素,那么左边界就是中间元素的右边位置 min = mid + 1 ; }else { return mid;//中间元素正好等于要查找的元素,返回位置 } } return -1;//没有找到,返回-1 }
0 0
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 二分查找
- 【Unity插件】NGUI核心组件之UIPanel
- Android 面试题学习
- java反射、内省、注解
- 关于友盟分享的小问题
- 总结一下 input propertychange
- 二分查找
- php无法用mail函数发送邮件之原因
- Java并发编程:线程池的使用
- iOS开发证书变成“此证书的签发者无效”解决方法
- BZOJ_P4128 Matrix(矩阵乘法+快速幂+BSGS)
- 梆梆SDKs详细分析-防界面劫持SDK
- MySQL 存储引擎
- c 文本文件拷贝
- FMDB数据库总结