|
发表于 2016-9-18 16:56:24
|
显示全部楼层
/*
**折半查找法--递归实现
**2016年9月18日 15:44:02
*/
#include <stdio.h>
int main()
{
int data[15] = {1, 1, 2, 3, 5 ,8, 13, 21, 34, 55, 89, 144, 233, 377, 610};
int e, index;
printf("请输入待查找的元素:\n");
scanf("%d", &e);
index = half_search(data, e, 0, 14);
if(index != -1)
printf("查找成功! 元素%d在数组中的下标为%d\n", e, index);
else
printf("查找失败! 元素%d不在数组中\n");
return 0;
}
//折半查找法--递归实现
int half_search(int *data, int e, int low, int high)
{
if(low > high)
return -1;
int mid = (low + high) / 2;
if(e > data[mid])
return half_search(data, e, mid + 1, high);
else if(e < data[mid])
return half_search(data, e, low, mid - 1);
else
return mid;
} |
|