#include <stdio.h>
#include <stdlib.h>
int search(int str[],int low,int high,int key)
{
int mid;
mid = (low+high)/2;
if( str[mid] == key )
{
return mid;
}
else if( str[mid] < key )
{
if(low==high && str[mid]!=key)
{
return -1;
}
search(str,mid+1,high,key);
}
else if( str[mid] > key )
{
if(low==high && str[mid]!=key)
{
return -1;
}
search(str,low,mid-1,key);
}
}
int main()
{
int str[11] = {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89};
int n,low,high,mid;
printf("输入你要查找的关键字: ");
scanf("%d",&n);
low=0;
high=10;
mid=search(str,low,high,n);
if(mid!=-1)
{
printf("查找的在数组的 %d 号元素",mid);
}
else
{
printf("查找不到!");
}
return 0;
}
|