Java 折半查询_java之折半查询

/**

* 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

//如果选定下标小于折半下标

max=mid-1;

//最大下标移动到折半下标的上一下标处

if

(min>max)

//如果最小下标比最大小标还大

return

-1;

//返回-1;

mid=(min+max)/2;

//折半查询循环

}

return

mid;

//当选定要比较的下标值与折半下标相同时,返回折半下标。

}

原文:http://www.cnblogs.com/liupengcheng/p/3724875.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值