Мне дан отсортированный массив, имеющий различные элементы.Проверьте, есть ли у Сортированного массива A [i] = i, используя Divide и Conquer
Вернуться true if A[i] = i
else return false;
я обязан просто вернуть истинным или ложным, а не позицию.
Я внедрил код, но есть некоторые незначительные ошибки.
private static boolean find(int[] a, int low, int high)
{
System.out.println(Arrays.toString(a)+" "+low+ " "+high);
if(low<=high)
{
int mid = (low+high)/2;
if(mid==a[mid])
{
return true;
}
else if(a[mid]>mid)
{
find (a,low,mid-1);
}
else{
find (a,mid+1,high);
}
}
return false;
}
Я знаю, что он достигает return false
, даже если он нашел в середине.
Какие изменения следует внести, чтобы он возвращался true во всех случаях.
О Боже мой .. спасибо: D –