#include<stdio.h>
#include<stdlib.h>
typedef int Type;
Type Sear(Type *low, Type *high, Type aim, Type *base){
Type *mid = low + (high - low)/2;
if(aim < *mid){
high = mid;
mid = low + (high - low)/2;
Sear(low, high, aim, base);
}else if(aim > *mid){
low = mid;
mid = high - (high - low)/2;
Sear(low, high, aim, base);
}else return (mid - base + 1);//返回数组的下标
}
int main(){
Type num[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Type ret = Sear(num, num + 9, 5, num);
printf("%d", ret);
return 0;
}
折半查找(递归)
最新推荐文章于 2022-12-01 17:55:40 发布