正确的二分查找程序!
int search (int array[], int n, int v)
{
int left,right,middle;
left = 0;
right = n - 1;
while(left <= right)
{
middle = (left +right)/2;
if(array[middle] > v)
{
right = middle - 1;
}
else if(array[middle] < v)
{
left = middle + 1;
}
else
return middle;
}
return -1;
}
------------------------------------------------------------------------------
------------------------------------------------------------------------------
int search (int array[], int n, int v)
{
int left,right,middle;
left = 0;
right = n;
while(left <= right)
{
middle = (left +right)/2;
if(array[middle] > v)
{
right = middle;
}
else if(array[middle] < v)
{
left = middle + 1;
}
else
return middle;
}
return -1;
}