我正在做一个作业。我必须创建一个在数组中搜索特定 int 的方法。假设数组已经按从最低数到最高数排序。但条件是它必须通过将所述数组切成两半并检查目标数字位于哪一半来进行搜索,然后再次将所述一半切成两半,依此类推。
我们也被要求不要使用递归方法。
这是我想出的代码,但我没有看到我的错误,任何帮助更好地理解问题的帮助都非常感激!
public static boolean SearchInHalf(int[] array, int targetint)
{
int fin = array[array.length-1];
int init = array[0];
int range = fin-init;
if ( targetint>array[array.length-1] || targetint< array[0])
{
return false;
}
while (range>=2)
{
int half = array[range/2];
if (targetint>half)
{
init = half;
range = fin-init;
half = array[range/2];
}
else if (targetint<half)
{
fin = half;
range = fin-init;
half = array[range/2];
}
else if (targetint==half || targetint==fin || targetint==init)
{
return true;
}
}
return false;
}
米脂
偶然的你
相关分类