利用数组进行数据查找

折半查找法:针对有序数组
#include <stdio.h>
#include 
<conio.h>
#define M 10
void main()
{
  
static int a[M]={-12,0,6,16,23,56,80,100,110,115};
  
int n,low,mid,high,found;
  low
=0;
  high
=M-1;
  found
=0;
  printf(
"Input a number to be searched:");
  scanf(
"%d",&n);
  
while(low<=high)
    
{
     mid
=(low+high)/2;
     
if(n==a[mid]) {found=1;break;}
     
else if(n>a[mid]) low=mid+1;
          
else high=mid-1;
    }

  
if(found==1) printf("The index of %d is %d",n,mid);
  
else printf("There is not %d",n);
}

posted @ 2007-01-16 11:06  齐心  Views(528)  Comments(0Edit  收藏  举报