Chinaunix首页 | 论坛 | 博客
  • 博客访问: 44526
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 200
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-05 10:35
文章分类

全部博文(20)

文章存档

2016年(16)

2015年(4)

我的朋友

分类: C/C++

2016-04-08 18:43:01


点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. //二分法查找
  4. int binary_search(int* array,int n,int key)
  5. {
  6.  int low=0;
  7.  int high=n-1;
  8.  int mid;
  9.  
  10.  if(high < low)
  11.  return -1;
  12.  
  13.  while(low <= high)
  14.  {
  15.   mid=low+((high-low)>>1);
  16.   if(array[mid] == key){
  17.    return mid;
  18.   }
  19.   else{
  20.    if(array[mid] > key)
  21.    {
  22.    high = mid-1;
  23.    }else
  24.    {
  25.     low = mid+1;
  26.    }
  27.   }
  28.  }
  29.  if(low > high)
  30.  return -1;
  31. }

  32. int main()
  33. {
  34.  int array[]={1,2,3,4,5,6,7,8,9};
  35.  int result=binary_search(array,9,6);
  36.  if(result==-1)
  37.  printf("Not Found!");
  38.  else
  39.  printf("您所查找的数的标号为:array[%d]\n",result);
  40.  return 0;
  41.  
  42. }


阅读(721) | 评论(0) | 转发(0) |
0

上一篇:冒泡排序

下一篇:直接插入排序

给主人留下些什么吧!~~