Chinaunix首页 | 论坛 | 博客
  • 博客访问: 451235
  • 博文数量: 42
  • 博客积分: 1325
  • 博客等级: 中尉
  • 技术积分: 1312
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-13 18:00
个人简介

呵~~~呵~~~

文章分类

全部博文(42)

文章存档

2016年(3)

2015年(1)

2014年(2)

2013年(2)

2012年(7)

2011年(11)

2010年(3)

2009年(13)

我的朋友

分类: LINUX

2011-09-07 22:11:08

已排序数组二分查找示例.
有需要的话, 只需要将key及array改为结构体之类,用比较函数来判断大小。
 
  1. int *bsarray (int key, int *array, size_t array_size)
  2. {
  3.     int *s = array;
  4.     int *e = array + array_size - 1;
  5.     int *sp = NULL;

  6.     while(s <= e)
  7.     {
  8.         sp = s + (e - s) / 2;

  9.         if(key > *sp)
  10.         {
  11.             s = sp + 1;
  12.         }
  13.         else if (key < *sp)
  14.         {
  15.             e = sp - 1;
  16.         }
  17.         else
  18.         {
  19.             return sp;
  20.         }
  21.     }

  22.     return NULL;
  23. }
阅读(1070) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~