2017年7月20号,天晴
对有序序列利用折半查找法查找某元素,若找到,返回找到了,并返回下标值,没找到则返回找不到
#include<stdio.h>
int happy(int arr[],int key,int sz)
{
int left=0;
int right=sz-1;
while(left<=right)
{
int mid =(left+right)/2;
if(key==arr[mid])
return mid;
else
{
if(key>arr[mid])
left=mid+1;
else right=mid-1;
}
}
return -1;
}
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9};
int key=9;
int sz=sizeof(arr)/sizeof(arr[0]);
int ret=happy(arr,key,sz);
if(ret==-1)
printf("找不到\n");
else
printf("找到了%d\n",ret);
return 0;
}