c#二分查找法(求高手看看我的错误所在...)

来源:百度知道 编辑:UC知道 时间:2024/06/19 14:12:55
public int search(int[] q)
{
int i,j;
int low,high,middle;
low=0;
j=0;
high=q.Length-1;

Console.Write("请输入想要查找的数字:");
i=int.Parse(Console.ReadLine());
while(low<=high)
{
middle=(low+high)/2;
if(i==q[middle])
{
return ++j;

}
if(i<q[middle])
{
high=middle-1;
j++;
}
else
{
low=middle+1;
j++;
}
}
return j;

}

public int search(int[] q)
{
int i, low = 0, high = q.Length - 1, middle;
Console.Write("请输入想要查找的数字:");
i=int.Parse(Console.ReadLine());
while (low <= high)
{
middle = (low + high) / 2;
if (i == q[middle])return i;
if (i < q[middle])high = middle - 1;
else low = middle + 1;
}
throw new Exception("数组中不存在这个数。");
}