gpt4 book ai didi

Java - 递归二分搜索帮助

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

以下代码是我尝试创建递归二进制方法的方式..

public static int binarySearch(Comparable[] objArray, Comparable item)
{

int lower=0;
int upper=objArray.length -1;
int i = -1;
int compareResult;
boolean found = false;
while ((lower<=upper) && (!found))
{
i=(lower+upper)/2;
compareResult=item.compareTo(objArray[i]);
if(compareResult<0)
{
upper=i-1;
}
else
if (compareResult>0)
{
lower=i+1;
}
else
{
found=true;
}


}
return compareResult;



}

我觉得我做得不对......有什么建议吗?

-D

最佳答案

您正在使用循环。为了使您的方法递归,它需要调用自身,直到达到某种中断条件。

查看Wikipedia's example .

本质上,您的“while”条件将是中断递归的条件(即停止方法调用自身),并且当前循环的内容将设置“upper”和“lower”参数下一个递归调用。

关于Java - 递归二分搜索帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4188049/

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