为生存而奔跑

   :: 首页 :: 联系 :: 聚合  :: 管理
  271 Posts :: 0 Stories :: 58 Comments :: 0 Trackbacks

留言簿(5)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 319834
  • 排名 - 75

最新评论

阅读排行榜

评论排行榜

#include <stdio.h>

int upper(int a[], int n, int x)
{
    
int lo = 0, hi = n - 1, mid;

    
while (lo < hi)
    {
        mid 
= (lo + hi + 1/ 2;
        
if (a[mid] <= x)
            lo 
= mid;
        
else
            hi 
= mid - 1;    
    }
    
return lo;
}

int lower(int a[], int n, int x)
{
    
int lo = 0, hi = n - 1, mid;
    
    
while (lo < hi)
    {
        mid 
= (lo + hi) / 2;
        
if (a[mid] >= x)
            hi 
= mid;
        
else
            lo 
= mid + 1;    
    }
    
return lo;
}

int main(int argc, char *argv[])
{
    
int a[] = {12223};
    
int n = sizeof(a)/sizeof(a[0]);
    printf(
"upper bound:%d\nlower bound:%d\n", upper(a, n, 2) , lower(a, n, 2));
    
return 0;
}
posted on 2011-04-01 20:57 baby-fly 阅读(563) 评论(0)  编辑 收藏 引用 所属分类: Algorithm

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理