用c#实现折半查找

用c#实现折半查找

#include<stdio.h>

int find(int a[],int x,int n,int m)

{int i;

if(n>m)return -1;

i=(n+m)/2;

if(a[i]==x)return i;

if(a[i]>x)return find(a,x,n,i-1);

return find(a,x,i+1,m);

}

int main()

{

int a[20]={2,3,6,7,12,18,19,21,25,28,30,33,37,39,42,45,47,49,50,51};

int x,i;

printf("已有的数是:\n");

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

printf("%d ",a[i]);

printf("\n请输入要查找的数:");

scanf("%d",&x);

if((i=find(a,x,0,19))>=0)

printf("%d是第%d个数\n",x,i+1);

else printf("未找到%d\n",x);

return 0;

}

首页