首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

java2分查找 找不到为什么错了

2013-06-19 
java二分查找 找不到为什么错了package com.mypublic class erfen {// 被搜索数据的大小private static f

java二分查找 找不到为什么错了
package com.my;

public class erfen {
// 被搜索数据的大小
private static final int size = 100;

public static void main(String[] args) {
// 创建动态数组
long date[] = new long[size];
// 添加测试数据
for (int k = 0; k < date.length; k++) {
date[k] = k;
System.out.println(date[k]);
}
// 要查找的数据 binaryFindTest(date,target)
long target = 4;

int a = binaryFindTest(date, target);
System.out.println(a);
}

// 二分法搜索实现
private static int binaryFindTest(long[] date, long target) {
// TODO Auto-generated method stub
// 定义start
int start = 0;
// 定义end
int end = date.length - 1;
// 定义中间变量 (start+end)/2
// 只要start<=end
while (start < end) {
int middleIndex = (start + end) / 2;
// 判断 中间那个数是否等于你要找的那个数 如果是 返回元素下标,
if (target == date[middleIndex]) {
return middleIndex;
}
// 如果target大于 以middleIndex为元素下标的元素
if (target >= middleIndex) {
start = middleIndex + 1;
} else {
end = middleIndex - 1;
}
}
return -1;

}
[解决办法]
// 只要start<=end
while (start <= end)
// 如果target大于 以middleIndex为元素下标的元素
if (target >= date[middleIndex])

热点排行