0
点赞
收藏
分享

微信扫一扫

二分查找,在一个有序的序列中,找某个数据是否在该集合中,如果在打印该数据在集合中的下标,否则打印找不到

码农K 2022-12-30 阅读 129

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

#include<string.h>

#include<math.h>

int main()

{

   int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

   

   int k = 7;      //输入需要查找的值

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

   int left = 0;

   int right = sz - 1;

   

   while (left<=right)

   {

       int mid = (right + left) / 2;

       if (arr[mid] > k)

       {

           right = mid - 1;

       }

       else if (arr[mid] < k)

       {

           left = mid + 1;

       }

       else

       {

           printf("找到了下表为:%d\n", mid);

           break;


       }

       

    }

   if (left>right)

   {

       printf("找不到\n");

   }

   

   return 0;

}

举报

相关推荐

0 条评论