java二分查找 找不到为什么错了

han1558249222 2013-06-13 10:06:16
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;

}
...全文
157 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
han1558249222 2013-06-14
  • 打赏
  • 举报
回复
谢谢您了 问题已经解决
crazyxrp 2013-06-14
  • 打赏
  • 举报
回复
// 只要start<=end while (start <= end) // 如果target大于 以middleIndex为元素下标的元素 if (target >= date[middleIndex])

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧