/**
* Created by rabbit on 2014-5-12.
*/
public class HalfSerach
{
public
static void main(String[] args)
{
int [] arr =
{3,6,7,9,11,22,35};
//设置arr数组并进行复制
int index
=
halfsearch(arr,35);
//调用折半查询对数组里的35进行查询
System.out.println("index " + index);
//输出查询结果
}
public static int halfsearch(int [] arr,int key)
//开始创建折半查询方法
{
int
min,max,mid;
//创建最小下标min,最大下标max。折半下标mid。
min =
0;
//最小下标为
max =
arr.length-1;
//最大小标为arr.length-1
mid=(min+max)/2;
//折半下标为(最大下标和最小下标的和)的一半
while
(arr[mid]!=key)
//当选定要比较的下标值与折半下标不相同时
{
if
(key>arr[mid])
//如果选定下标大于折半下标
min=mid+1;
//最小下标移动到折半下标的下一下标处
else if
(key<arr[mid])
//如果选定下标小于折半下标
max=mid-1;
//最大下标移动到折半下标的上一下标处if
(min>max)
//如果最小下标比最大小标还大
return
-1;
//返回-1;
mid=(min+max)/2;
//折半查询循环
}
return
mid;
//当选定要比较的下标值与折半下标相同时,返回折半下标。}
java之折半查询,布布扣,bubuko.com
时间: 2024-10-08 11:37:03