Chinaunix首页 | 论坛 | 博客
  • 博客访问: 209619
  • 博文数量: 136
  • 博客积分: 2919
  • 博客等级: 少校
  • 技术积分: 1299
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-11 09:08
文章分类

全部博文(136)

文章存档

2013年(1)

2011年(135)

我的朋友

分类: C/C++

2011-03-18 09:21:48

  1. #include "stdio.h"
  2.  #define NELEMS(array) (sizeof(array) / sizeof(array[0]))

  3. /* main: test for binary search */
  4. int main(int argc, char *argv[])
  5. {
  6.     int i, imatch;
  7.     i = 3;
  8.     imatch = 0;
  9.      int iv[] = {1, 2, 3, 4, 5};    
  10.      imatch = binsearch(i, iv, NELEMS(iv));
  11.      printf("%d\n", imatch);
  12.     return 0;
  13. }

  14. /* binsearch: find x in v[0] <= v[1] <= ... <= v[n-1] */
  15. int binsearch (int x, int v[], int n)
  16. {
  17.     int low, high, mid;

  18.     low = 0;
  19.     high = n - 1;
  20.     while (low <= high) {
  21.         mid = (low+high)/2;
  22.         if (x < v[mid])
  23.          high = mid + 1;
  24.         else if (x > v[mid])
  25.          low = mid + 1;
  26.         else /* found match */
  27.          return mid;
  28.     }
  29.     return -1;
  30. }
阅读(387) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~