java绳子折半记天数_java实现折半查询。

折半查询也称二分法查询..

以下java实现的简单的例子.具体代码如下:

package pack.java.splitdemo;

public class SplitDemo {

/**

* author:ZhouHaiTao;

* @param arrayData 数据;

* @param searchData 查询的数据;

* @param start 开始索引;

* @param end 结束索引;

* @return 索引下标;没有查询到值,这返回-1;

*/

private int splitMethod(int[] arrayData,int searchData,int start,int end){

int index = (start + end) / 2;

int data = arrayData[index];

if(start >end){

return -1;

}

if(data == searchData){

return index;

}else {

//如果查询出的数据,小于查询出的数据,

if(data < searchData){

//利用递归,再次查找;index向上移动1位。

return splitMethod(arrayData, searchData, index+1, end);

}else{

return splitMethod(arrayData, searchData, start, end-1);

}

}

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

SplitDemo splitDemo = new SplitDemo();

int[] arrayData = new int[]{1,3,20,23,29,45,54,64,99};

int index = splitDemo.splitMethod(arrayData,54, 0,arrayData.length-1);

System.out.println("is exists:"+index);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值