折半法查找数组中的一个数

#include<iostream>
using namespace std;

int main()
{
    int a[]={1,4,6,10,12,20,33,39,41,48};
    int size=sizeof(a)/sizeof(int);
    int min=0;
    int max=size-1;
    int mid=max/2;
    int find=22;

    while(min<=max)
   {
         if(a[mid]==find)
         {
              cout<<"存在要查找的数:"<<a[mid]<<endl;
              break;
          }
         else if(find<a[mid])
         {
             max=mid-1;
             mid=(min+max)/2;
         }
        else
        {
            min=mid+1;
            mid=(min+max)/2;
        }
   }
       if(min>max)
             cout<<"不存在所要查找的数"<<endl;

     return 0;
}

你可能感兴趣的:(算法)