递归实现折半查找
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
int binsearch(int a[], int key, int low, int high)
{
int mid = (low + high) /2;
if (low > high)
return -1;
if (key == a[mid])
return mid;
else if (key > a[mid])
return binsearch(a, key, mid + 1 , high);
else
return binsearch(a, key, low, mid - 1);
}
int main()
{
int a[] = { 1,2,3,4,5,6,7,8,9 };
int i;
printf("请输入你要查找的数字(找到返回下标,否则返回-1):");
scanf_s("%d", &i);
i = binsearch(a, i, 0, 8);
printf("%d\n", i);
system("pause");
return 0;
}

浙公网安备 33010602011771号