用折半查找法在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1

  1. #define _CRT_SECURE_NO_WARNINGS  
  2. #include <stdio.h>  
  3. int main()  
  4. {  
  5.     int a[15] = { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };  
  6.     int l = 0, h = 14, x, m;  
  7.     printf("输入数字:");  
  8.     scanf("%d", &x);  
  9.     while (l<h)  
  10.     {  
  11.         m = (l + h) / 2;  
  12.         if (x == a[m]) break;  
  13.         if (x>a[m])  
  14.             h = m;  
  15.         else  
  16.             l = m;  
  17.         if ((l == h) && x != a[h]) {  
  18.             printf("-1");  
  19.             return 0;  
  20.         }  
  21.     }  
  22.     printf("是第%d个元素", m + 1);  
  23.     return 0;  
  24. }  

猜你喜欢

转载自blog.csdn.net/zhengxinyu666/article/details/80242680