C语言--指针--简洁版折半查找(二分法查找)

代码区

#include
#define N 5
int search(int a[N],int n)
{
 int low=0,high=N-1,mid,flag=0;
 while(low<=high)
 {
 mid=(low+high)/2;
 if(*(a+mid)==n)
 {
  flag=mid+1;
    break;
 }
 else if(n>*(a+mid))
 {
  low=mid+1;
 }
 else high=mid-1;
 }
 if(flag)
	 return flag;
 else
	 return 0;
}
main()
{
 int a[N],n,i;
 int *p=a;
 printf("input these numbers in order\n");
 for(i=0;i<5;i++)
 {
  scanf("%d",&a[i]);
 }
 printf("input what you want\n");
 scanf("%d",&n);
 int flag=search(p,n);
 if(flag)
 printf("  位置:%d",flag);
 else
  printf("not find\n");
} 

你可能感兴趣的:(C语言--指针--简洁版折半查找(二分法查找))