作者在 2013-04-19 16:10:38 发布以下内容
#include<stdio.h>
int find(int *arr,int low, int hight,int key)
{
int mid=(hight+low)/2 ;
if(hight<low) return -1;//处理不在数组内之数 ,此处参考网上技术,感觉很巧妙
if(arr[mid]!=key)
{
if(arr[mid]>key) return find(arr,low,mid-1,key);
else return find(arr,mid+1,hight,key);
}
else return mid;
}
int main()
{
int arr[]={1,2,3,4,5,6,7,9,16};
printf("数组位置:%d\n", find(arr, 0, 8, 3));
printf("数组位置:%d\n", find(arr, 0, 8, 7));
printf("数组位置:%d\n", find(arr, 0, 8, 19));
return 0;
}
int find(int *arr,int low, int hight,int key)
{
int mid=(hight+low)/2 ;
if(hight<low) return -1;//处理不在数组内之数 ,此处参考网上技术,感觉很巧妙
if(arr[mid]!=key)
{
if(arr[mid]>key) return find(arr,low,mid-1,key);
else return find(arr,mid+1,hight,key);
}
else return mid;
}
int main()
{
int arr[]={1,2,3,4,5,6,7,9,16};
printf("数组位置:%d\n", find(arr, 0, 8, 3));
printf("数组位置:%d\n", find(arr, 0, 8, 7));
printf("数组位置:%d\n", find(arr, 0, 8, 19));
return 0;
}