public int find(int[] values, int key)
{
int low = 0;
int high = values.Length - 1;
int i = 0;
while (true)
{
i = (low + high) / 2;
if (values[i] == key)
{
return i;
}
else if (low > high)
{
return -1;
}
if (values[i] > key)
{
high = i - 1;
}
else
{
low = i + 1;
}
}
}
{
int low = 0;
int high = values.Length - 1;
int i = 0;
while (true)
{
i = (low + high) / 2;
if (values[i] == key)
{
return i;
}
else if (low > high)
{
return -1;
}
if (values[i] > key)
{
high = i - 1;
}
else
{
low = i + 1;
}
}
}
浙公网安备 33010602011771号