0
点赞
收藏
分享

微信扫一扫

二分法定位

int main()//定位31

{

int arr[] = { 2,4,6,7,9,11,20,30,31,35,40,45,69,70 };

int sz = sizeof(arr) / sizeof(arr[0]);  

int left = 0;//范围左端下标

int right = sz - 1;//范围右端下标

int mid = 0;

int k = 0;

printf("判断任意一个数是否在数组中:>");

scanf("%d", &k);

while (right >= left)

{

 mid = (left + right) / 2;

 if (arr[mid] == k)

 {

  printf("31的下标是%d\n", mid);

   break;

 }

 else if (arr[mid] < 31)

 {

  left = mid + 1;

 }

 else

  right = mid - 1;

}

if (left > right)

 printf("该数不存在\n");

return 0;

}

举报

相关推荐

二分法初学

算法 | 二分法

排序、二分法

二分法自我总结

二分法找元素

原木切割二分法

0 条评论