题目:
利用递归方式编写算法实现二分查找
实现代码:
#include <stdio.h>
int Binsearch(int R[ ], int k, int low, int high)
{ int mid, i;
if ( low <= high)
{ mid = (low + high) / 2;
if (k == R[mid])
return ( mid);
if (k < R[mid])
i = Binsearch(R, k, low, mid - 1);
else
i = Binsearch(R, k, mid + 1, high);
}
else
return -1;
return i;
}
int main()
{ int R[] = {1, 2, 3, 4, 5, 6, 7, 8, 9,10,11};
int low = 0;
int high = 10;
int k = 5;
int i;
printf("数组:");
for (i = 0; i < 11; i++)
printf("%d ", R[i]);
printf("\n");
printf("查询:%d\n", k);
if (Binsearch(R, k, low, high) != -1)
printf("查询成功\n");
else
printf("查询失败\n");
return 1;
}