二分查找
2016-08-11 21:31
141 查看
很简单也很实用的一个算法,详解在注释中
前提:数组中的元素要有序
前提:数组中的元素要有序
public static int halfSerach_2(int []arr,int key){ int min,max,mid; min = 0; //定义最小下标 max = arr.length - 1; //最大下标 mid = (min+max) >> 1; //中间下标 (mix+max)/2 while(arr[mid] != key){ //当数组中间那个数不等于所要的key if(key > arr[mid]){ min = mid + 1; //如果key是大于中间的数,则最小下标移到mid+1 }else if(key < arr[mid]){ max = mid - 1; //如果key是小于中间的那个数,则最大下标移到mid-1 } mid = (min+max) >> 1; //mid值为移动后的最小下标和最大下标的一半. } return mid; }
相关文章推荐
- HDU 4614 Vases and Flowers (二分查找+线段树区间更新)
- Binarysearch 二分查找
- 简单查找,二分查找,查找子序列
- 二分查找递归和非递归
- C语言实现直接插入排序,冒泡排序以及二分查找(巩固理解记忆)
- 九度OJ 1069 查找学生信息(二分查找)
- 二分查找or线段树(借教室洛谷1083vijos1782NOIP 2012 提高组 第二天 第二题)
- 程序员必须掌握的十种算法---二分查找算法
- 二分查找(递归与非递归)
- 二分查找
- 插入,冒泡排序算法,二分查找
- 二分查找
- 数据结构--加入二分查找的插入排序(优化)
- Monthly Expense(二分查找)
- 二分查找Binary Search
- 查找算法集:顺序查找、二分查找、插值查找、动态查找(数组实现、链表实现)
- JAVA二分查找源码阅读
- 二分查找
- #转 二分查找
- LintCode python 小白-简单题-457经典二分查找问题