int Binary_Search(int *Q, int start, int end, int x)//给定一个排好序的数组,找指定数的位置
{
if (start > end)
return -1;
int mid = (start + end) / 2;
if (x == Q[mid]){
return mid;
}
else if (x < Q[mid])
Binary_Search(Q, start, mid - 1, x);//不需要再把mid加入
else
Binary_Search(Q, mid + 1, end, x);
}
原理参见 屈婉玲老师 算法设计与分析 ORZ