Chinaunix首页 | 论坛 | 博客
  • 博客访问: 106502
  • 博文数量: 20
  • 博客积分: 506
  • 博客等级: 下士
  • 技术积分: 216
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-08 21:10
文章分类

全部博文(20)

文章存档

2011年(20)

我的朋友

分类: C/C++

2011-02-17 14:43:24

  
    看见一篇文章说只有10%的专业程序员才能一次性写出无bug 二分查找算法,确实额~  第一次写也出了点小问题
 
 
  1. /*---------------------------------------------------------
  2. 二分查找
  3. 给定要查找的数组,返回想要查找的第K个元素
  4.                                     by zx_ace@sina.com
  5. ---------------------------------------------------------*/

  6. #include<stdio.h>
  7. int fen(int x[],int n,int k )
  8. {
  9.     
  10.   int m=n/2;
  11.   int a;
  12.   if(k==m)
  13.      return *(x+k-1);
  14.   while(k!=m)
  15.   {
  16.      if(k>m)
  17.      {
  18.       
  19.          a=m+1;
  20.      m=(a+n)/2;;
  21.      }
  22.      if(k<m)
  23.      {
  24.          a=0;
  25.         n=m;
  26.         m=(a+n)/2;;
  27.      }    
  28.   }
  29.   return *(x+k-1);
  30.      
  31. }

  32. int main()
  33. {
  34. int a[10]={66,22,11,44,77,
  35.      88,33,22,11,88};

  36. int b=fen(a,10,7);
  37. printf("%d\n",b);

  38. return 0;    
  39. }
阅读(1414) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~