二分法查找
public int BinarySearch(int target,int[] array,int left,int right)
{
if (right - left <= 0)
{
return -1;
}
int binaryIndex = (right+left)/ 2;
if (array[binaryIndex] == target)
{
return binaryIndex;
}
if (array[binaryIndex]>target)
{
left = 0;
right = binaryIndex;
}
else
{
left = binaryIndex;
right = right - 1;
}
return BinarySearch(target, array, left, right);
}
其中要注意的是:
两个自然数的中间数是多少?
如 5和8中间的数是:
(5+8)/2
而不是
(5-8)/2

浙公网安备 33010602011771号