黑马程序员技术交流社区

标题: 折半查找分享 [打印本页]

作者: XiaoBaoMi    时间: 2015-6-28 15:50
标题: 折半查找分享
  1. #include <stdio.h>

  2. int main() {
  3.     int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  4.     int low = 0, high = 9;
  5.     printf("输入您要查找的数\n");
  6.     int b = 0;
  7.     //要查找的数的位置
  8.     int place = 0;
  9.     scanf("%d",&b);
  10.     while (high != low) {
  11.    
  12.     int middle = (high + low) / 2;
  13.     if(b > a[middle])
  14.     {
  15.         if (b == a[high]) {
  16.             place = high;
  17.             break;
  18.         }
  19.         low = middle + 1;
  20.     }else if (b < a[middle]){
  21.         if (b == a[low]) {
  22.             place = low;
  23.             break;
  24.         }
  25.         high = middle - 1;
  26.     }else{
  27.         place = middle;
  28.         break;
  29.     }
  30.         
  31.     }
  32.    
  33.     printf("%d\n",place);
  34.     return 0;
  35. }
复制代码

作者: aSmallStone    时间: 2015-6-28 18:37
妙不可言
作者: pp584995727    时间: 2015-6-28 22:45
学习了,代码不错,
作者: yyyyyyyyqs    时间: 2015-6-29 18:22
赞哦~                                                         
作者: Thomas-王    时间: 2015-6-29 20:55
这代码还是很清楚的,嗯嗯
作者: 沙睿    时间: 2015-6-29 21:57
不错不错!!!
作者: 赵云18235802528    时间: 2015-6-30 07:03
赞赞赞赞赞赞




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2