二分查找

#include <stdio.h>
#define N 6
int f(int a[],int low,int high,int x)
{
    int mid =(low+high)/2 ;
    if (low>high)      return -1 ;
    else     if (a[mid]==x)     return mid ;
    else     if (a[mid]>x )     return  f(a,low,mid-1,x);
    else            return  f(a,mid+1, high,x);


}
int main ( )
{

    int x, a[N]={ 1,2,3,5,6,7} ;
    scanf("%d",&x);
    printf("%d
",f(a,0,N-1,x));

}

********************************************************


#include <stdio.h>
#define N 6
int f(int a[],int low,int high,int x)
{
	int mid =(low+high)/2 ;
	if(low>high)      return -1 ;
	 if(a[mid]==x)     return mid ;
	 if(a[mid]>x)    return  f(a,low,mid-1,x);
	else            return  f(a,mid+1, high,x);
	 

}
int main ( )
{
	 
	 int x, a[N]={ 1,2,3,5,6,7} ;
	 scanf("%d",&x);
	printf("%d
",f(a,0,N-1,x));

}

  


  

原文地址:https://www.cnblogs.com/wc1903036673/p/3488252.html