Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7724149
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: C/C++

2011-05-31 10:31:38

 

  1. /*
  2.  * 二分查找
  3.  * Lzy 2011-5-28
  4.  */

  5. #include <stdio.h>
  6. #define N 8

  7. int BinSearch(int X[],int n, int K)            /*二分查找*/
  8. {                                /*X待查数组,n长度,k要查找的关键值*/    
  9.     int low = 0, high = n-1;
  10.     int mid;

  11.     while(low <= high)                /*等于必须要*/
  12.     {
  13.         mid = (low + high) / 2;
  14.     
  15.         if(X[mid] == K)
  16.             return X[mid];            /*查找成功*/
  17.         if(X[mid] < K)                /* 中间位置的数据元素小于关键字 */
  18.             low = mid + 1;            /*在右边查找*/
  19.         else
  20.             high = mid - 1;            /*在左边查找*/
  21.     }
  22.     return -1;                        /*查找失败*/
  23. }


  24. int main(void)
  25. {
  26.     int i;
  27.     int X[N] = {1,2,3,4,5,6,7,8};
  28.     i = BinSearch(X,8,5);    
  29.     
  30.     printf("%d\n",i);
  31. }
阅读(1294) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~