【求助】c#二分法 确保不出现无限递归(初学)
public int Binsearch(int[] a, int key,int low, int high){
int mid = (low + high) / 2;
if (mid > 1)
{
if (key < a[mid])
{ return Binsearch(a, key, low, mid-1 ); }
else if (key > a[mid])
{ return Binsearch(a, key, mid+1 , high); }
else if (key == a[mid])
{ return mid; }
else { return -1 ; }
}
else return mid;
}
运行以后,出现“未处理的“System.StackOverflowException”类型的异常出现在 期末样题.exe 中。”,还有“确保您没有无限循环或无限递归”。我已经写了 mid>1 ,为什么不能成功啊?还有我的初衷是要输入一个数字,利用二分法判断它是否在已知数组中。有没有更好的方法呢??
非常感谢好心人的帮助啊!!!我这是第一次提问。。。如果有什么不对的地方,麻烦指出来~~