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.dengb.com/Javabc/769344.htmlwww.dengb.comtruehttp://www.dengb.com/Javabc/769344.htmlTechArticle/** * 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 in...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值