//二分法查找数组中的某个元素(二分法查找时数组元素必须是有序的)
2018-03-19 10:02
435 查看
public class HalfSearch { public static void main(String[] args) { int[] arr={5,7,11,12,23,34,45}; int index=halfSearch(arr,68); System.out.println("34在数组中的索引为:"+index); } private static int halfSearch(int[] arr, int i) { int max=arr.length-1; int min=0; int mid=(max+min)/2; while(true){ //找到元素 if(i>arr[mid]){ min=mid+1; }else if(i<arr[mid]){ max=mid-1; }else{ return mid; } //没有找到元素 if(max<min){ return -1; } //获取新的mid mid=(max+min)/2; } } } |
相关文章推荐
- 设计一个模板类Sample,用于对一个有序数组采用二分法查找元素下标
- 查找一个有序数组中的一个元素——二分法
- 二分法查找有序数组中的元素
- 利用二分法查找有序数组中某一元素
- 二分法查找有序数组中某元素个数
- 二分法实现一个整形有序数组的二分查找
- 在一个有序数组中查找具体的某个数字——二分法——函数法
- 折半查找,也称二分查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。
- 给定一个经过一次旋转的有序数组,从中查找一个值,若存在返回它的索引,不存在返回-1,假定数组存在重复元素
- C#版本,二分法查找元素是否在一个目标数组中?
- 二分查找binsearch: 在v[0]&lt;=v[1]&lt;=v[2]&lt;=......&lt;=v[n-1]中查找x,数组v的元素必须以升序排列
- (java)二维有序数组中查找元素
- 在旋转后的有序数组中查找元素,要求O(logn)的时间复杂度
- 有序数组的二分法查找关键字
- 解析php二分法查找数组是否包含某一元素
- 二分法的应用----------利用随机类生成数组,并用二分法对数组的元素进行查找以及插入操作
- 两个有序非重数组,如果查找数组之间的重复元素
- 定义数组为有序数组模型,并利用二分法进行查找,删除特定值(缺点:只能删除一个值,若有相同的值,则删除第一个)
- 迭代用在有序数组二分法查找中,递归的二分法查找更简洁,但速度可能会慢一点
- 二分法在有序数组中查找一个数