gpt4 book ai didi

java - 自定义二分查找功能无法正常工作

转载 作者:行者123 更新时间:2023-12-02 02:31:53 27 4
gpt4 key购买 nike

我正在创建自定义二进制搜索函数,但遇到了问题。我已经浏览了代码很长一段时间了,但是,我不明白为什么没有返回。请让我知道你在想什么。谢谢!

a是数组,b是最后返回的结果,t是目标值。 Pos 是当前位置,min 和 max 是最小和最大位置。

public static int binarySearch(int a[], int t){
int min = 0;
int max = a.length;
if (a[0] == t){
return 0;
}
int b = -1;
for (int pos = min; a[pos] != t;){
pos = (max - min) / 2;
if (a[pos] == t){
b = pos;
} else {
if(t > a[pos]){
min = pos + 1;
} else {
min = pos - 1;
}
}
}
return b;
}

最佳答案

两个小问题

pos = (max - min) / 2;

看起来您正在尝试找到值的平均值,但实际上找到的是差异的一半

要查找平均值,请使用 pos = (max - min) / 2 + min;

移动 max 时也是如此向下,您不小心移动了 min改为向上

min = pos - 1;应该是 max = pos - 1;

关于java - 自定义二分查找功能无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46962411/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com