二分法查找一个数字

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
 int num = 2;
 int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
 int lead = 0;
 int read = sizeof(arr)-1;
  while (lead < read)     //这里的判断条件用的是小于,而不是小于等于
  {
   int mid = (lead + read) / 2;
   if (num > arr[mid])
   {
    lead = mid + 1;
   }
   else if (num < arr[mid])
   {
    read = mid;
   }
   else if (num = arr[mid])
   {
    printf("%d", mid);
    break;
   }
   if(lead=read)  //判断完前面之后,要是在lead<read的时候没有,找到这个数字,那么当他们俩相等的时候就说明你查找的区域没有你要找的数字 
   {
   printf ("没找到这个数字");
   }
   system("pause");
   return 0;
   }

猜你喜欢

转载自blog.csdn.net/weixin_43767691/article/details/88431743
今日推荐