难度系数lg1 已解决
[[it] 本帖最后由 liyanhong 于 2008-5-18 17:46 编辑 [/it]]
----------------解决方案--------------------------------------------------------
int BinarySearch(int *array,int len,int key)
{
int low =0, high=len-1,mid;
for(; low<=high; )
{
mid = (low+high)/2;
if(array[mid] == key ) return mid;
if(array[mid]<key ) low = mid+1;
else high = mid-1;
}
return -1;
}
----------------解决方案--------------------------------------------------------
楼上说得对。
在根据中间值移动坐标时,你得是中间值减1或加1。
比如,你的front=4, last=5, mid=4,但是a[mid]>x, 所以,你的front永远等于4,就死循环了。
----------------解决方案--------------------------------------------------------
此帖不水
谢谢两位的解答 让我感受到了温暖 PS:我很喜欢你的个性签名下的那首诗
尤其是最后一句
----------------解决方案--------------------------------------------------------
3楼的是四种二分情况之中最好写的一种
[color=white]
[[it] 本帖最后由 Q1007665007 于 2008-5-18 12:15 编辑 [/it]]
----------------解决方案--------------------------------------------------------
燕子怎么又来个新号了???
----------------解决方案--------------------------------------------------------
说错了,是对二楼。。。
还有三种二分是:
1. 找出不大于n的最大元素
2. 找出不小于n的最小元素
3. 找出最接近n的元素,若目标元素有多个相等的,返回下标最小(大)的那一个
[color=white]
----------------解决方案--------------------------------------------------------
此帖不水
谢了 ----------------解决方案--------------------------------------------------------