当前位置: 代码迷 >> C语言 >> 难度系数lg1 已解决
  详细解决方案

难度系数lg1 已解决

热度:311   发布时间:2008-05-17 22:38:00.0
难度系数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]
----------------解决方案--------------------------------------------------------
此帖不水
谢了
----------------解决方案--------------------------------------------------------
  相关解决方案