C语言--折半法查找(二分法)

折半法(二分法)查找一个数字的下标

#include<stdio.h>

int main() {
 int arr[] = { 1,2,3,4,5,6,7,8,9,11 };
 int left = 0;
 int right = sizeof(arr) / 4;
 int a;
scanf("%d", &a);
 while (right >= left) {
 int mid = (left + right) / 2;
  if (a < arr[mid]) {
  right = mid - 1;
  }
  if (a > arr[mid]) {
  left = mid + 1;
 }
  if (a == arr[mid]) {
   printf("你要的数字的下标是%d", mid);
   break;
  }
 }
 if (left > right) {
 printf("没有这个数字!");
 }
 return 0;
}
 
发布了40 篇原创文章 · 获赞 0 · 访问量 592

猜你喜欢

转载自blog.csdn.net/loreal8/article/details/103103420
今日推荐