2020-04-29

1.二分法

2.宏定义

3.条件编译

4.创建头文件

#include

void Fun(int arr[],int a,int length)

{

    int min=arr[0];

int max=arr[length-1];

int mid;

int i=1;

while(i<=length)

{

mid=(min+max)/2;

if(a>mid)

{

min=mid+1;

}else if(a

{

max=mid-1;

}else

{

printf("找到了%d\n",mid);

return;

}

i++;

}

printf("找不到%d\n\n",a);

}

int Fun1(int min,int max ,int mid,int a)

{

if(mid>max||mid

{

printf("没找到");

return a;

}

if(a>mid)

{

min=mid+1;

return Fun1(min,max,(min+max)/2,a);

}else if(a

{

    max=mid-1;

return Fun1(min,max,(min+max)/2,a);

}else

{

printf("找到了");

return mid;

}

}

int main()

{

    int arr[100];

    int i;

    for(i=0;i<100;i++)

    {

    arr[i]=i+1;

    }

    int min=arr[0];

int max=arr[99];

int mid=(min+max)/2;

    for(i=0;i<100;i++)

    {

    //Fun(arr,arr[i],100);

      // printf("%d\n",Fun1(min,max,mid,arr[i]));

    }

    printf("%d\n",Fun1(min,max,mid,0));

}

你可能感兴趣的:(2020-04-29)