Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25265
  • 博文数量: 14
  • 博客积分: 600
  • 博客等级: 中士
  • 技术积分: 165
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-05 11:28
文章分类

全部博文(14)

文章存档

2011年(1)

2009年(3)

2008年(10)

我的朋友

分类: C/C++

2008-12-18 17:22:43


#include

int binary_search(int array[], int value, int size)
{
    int found = 0;
    int high = size, low = 0, mid;
    mid = (high + low) /2;
    printf("\n\nLooking for %d\n",value);
    while ((!found) && (high >= low))
    {
        printf("Low : %d, Mid : %d, High : %d\n",low, mid, high);
        if (value == array[mid])
            found = 1;
        else if (value < array[mid])
        {
            high = mid - 1;
            mid = (high + low) / 2;
        }
        else
            low = mid + 1;
            mid = (high + low) / 2;
    }
    return (found) ? mid : -1;
}
int main(void)
{
    int array[100], i;
    for (i = 0; i < 100; i++)
        array[i] = i+1;
    printf("%d:\n",binary_search(array, 72, 100));
    printf("%d:\n",binary_search(array, 33, 50));
    printf("%d:\n",binary_search(array, 1001, 100));
    return 0;
}
阅读(626) | 评论(0) | 转发(0) |
0

上一篇:shell杂记

下一篇:冒泡排序

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