二分法查找数组中的数
2016-11-25 16:03
141 查看
import java.util.Arrays;
class Demo34
{
public static void main(String[] args)
{
//二分法查找:前期条件,被查找的数组要是有序的
int[] arr= {2,34,56,78,98,100};
int key =89;
int index=halfSearch(arr,key);
System.out.println("index="+index);
}
public static int halfSearch(int[] arr,int key)
{
int min =0,max=arr.length-1,mid;
while(min<max)
{
mid=(min+max)>>1;
if(key>arr[mid])
min=mid+1;
else if(key==arr[mid])
return mid;
else
max= mid-1;
}
return -1;
}
}
同样是定义二分法为一个函数,注意,其中使用到了>>1,意义是右移1位,相当于/2,注意复习位运算符的知识。
class Demo34
{
public static void main(String[] args)
{
//二分法查找:前期条件,被查找的数组要是有序的
int[] arr= {2,34,56,78,98,100};
int key =89;
int index=halfSearch(arr,key);
System.out.println("index="+index);
}
public static int halfSearch(int[] arr,int key)
{
int min =0,max=arr.length-1,mid;
while(min<max)
{
mid=(min+max)>>1;
if(key>arr[mid])
min=mid+1;
else if(key==arr[mid])
return mid;
else
max= mid-1;
}
return -1;
}
}
同样是定义二分法为一个函数,注意,其中使用到了>>1,意义是右移1位,相当于/2,注意复习位运算符的知识。
相关文章推荐
- 二分法在数组中查找关键字
- php 数组二分法查找函数
- 解析php二分法查找数组是否包含某一元素
- php 二分法查找数组中某数值 案例分析
- C#版本,二分法查找元素是否在一个目标数组中?
- 使用不同方法查找数组中某个特定值,并计算时间(改正二分法查找错误和数组转化集合错误)
- 定义数组为有序数组模型,并利用二分法进行查找,删除特定值(缺点:只能删除一个值,若有相同的值,则删除第一个)
- PHP写一个二分法查找一个值在数组中的位置
- 黑马程序员03数组排序与二分法查找
- 个人练习数据结构之--------------关于线性数据的有序数组以及之上的二分法查找、不同排序方法的学习
- //二分法查找数组中的某个元素(二分法查找时数组元素必须是有序的)
- 数据结构与算法--有序数组和二分法查找
- 二分法查找数组中一个数
- 二分法实现一个整形有序数组的二分查找
- 二分法查找有序数组中的元素
- java 12:数组的搜索——线性查找及二分法查找
- JS数组二分法查找
- java数组-顺序插入数据及二分法查找数据
- php 数组二分法查找函数代码
- 用二分法查找数组中的下标