C语言编程在整型有序数组中查找二分法(折半法)想要的数字并且返回下标

  

遇到有“序”数组中查找元素类的题,优先考虑折半查找(二分查找)

  

做法核心是利用所定义的下标左和右与中期(由计算得来)下标的比较来逐渐缩短查找范围,达到一个阈值后即为找到。

  

源代码如下:

  
 <代码> # include
  # include
  
  搜索(int x int [], int, int, int)//定义二分查找函数
  {
  而(左& lt;=)
  {
  int中期=(左+右)/2;//计算当前查找范围中间元素的下标
  如果(x & lt;(中期))
  {
  正确的=1;中期//若在中间元素的左边则移动对下标
  }
  如果(x>[中])
  {
  左=+ 1中期;//若在中间元素的右边则移动了下标
  }
  其他的
  {
  返回中期;//说明找到元素
  }
  
  }
  返回0;
  }
  
  int main ()
  {
  int i m, n;
  int[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10},//可事先定义也可让用户输入
  int左=0,右=sizeof (a)/sizeof ([0]);
  printf(“请输入你要查找的数字:\ n”);
  scanf (“% d”,和n);
  m=搜索(n,左,右);
  如果(m)
  {
  printf("找到了,下标为% d \ n”,米);
  }
  其他的
  printf("找不到\ n”);
  系统(“暂停”);
  返回0;
  } 
  

运行结果:
 C语言编程在整型有序数组中查找二分法(折半法)想要的数字并且返回下标“> <br/> <img src=

C语言编程在整型有序数组中查找二分法(折半法)想要的数字并且返回下标