011 折半查找法

#include 
#define   N   10
/*
折半查找算法:
1、将数列有序化排列;
2、先以有序数列的中点位置为比较对象
3、如果要找的元素值小于该重点元素,则该查找序列缩小为左部分,否则为右半部分
*/
int fun(int  a[], int  m )
{  int  low=0,high=N-1,mid;
   while(low<=high)
   {  mid=(low+high)/2;
      if(m1;
      else if(m > a[mid])
        low=mid+1;
      else  
        return(mid);
   }
   return(-1);
}
void main()
{  int  i,a[N]={-3,4,7,9,13,45,67,89,100,180 },k,m;

   printf("a数组中的数据如下:");
   for(i=0;iprintf("%d ", a[i]);
   printf("Enter m: ");  scanf("%d",&m);
   k=fun(a,m);
   if(k>=0) printf("m=%d,index=%d\n",m,k);
   else  printf("Not be found!\n");
}

你可能感兴趣的:(C语言)