Chinaunix首页 | 论坛 | 博客
  • 博客访问: 155906
  • 博文数量: 7
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-30 13:00
文章存档

2008年(7)

我的朋友

分类: C/C++

2008-03-25 08:34:38

防止忘记,以后把学到的算法都写在这里:
 
1.二分查找
 
 
int binsearch(int x, int v[], int n)
{
    int low = 0;
    int high = n - 1;
    int mid;
    while (low <= high) {
        mid = (low + high) / 2;
        if (x > v[mid])
            low = mid + 1;
        else if (x < v[mid])
            high = mid - 1;
        else   
            return mid; /* found match, 返回其位置 */
    }
    return -1;          /* no match 返回-1 */
}

/* 得到一个数量为n的不重复的随机数组 */
get_rand_array(int data[], int n)
{
    int i;
    
    bzero(data, n);/* set data into 0 */
    for (i = 0; i < n; i++) {
        while (search((num = get_rand()), data, i)) /* this num in data ? */
           ; /* skip */
        data[i] = num; /* save it into data */
    } 
}

阅读(973) | 评论(0) | 转发(0) |
0

上一篇:Vim+Taglist+Ctags组合

下一篇:升级vim7.1

给主人留下些什么吧!~~