1. Decryption
一组数据为1,3,9,12,32,41,62,75,77,82
,使用递归表示与实现二分查找。
2.Code
#include<stdio.h>
#define SIZE 10
int binarySearch(int arr[], int low, int high, int key);
int main(void) {
int d[SIZE] = { 1,3,9,12,32,41,62,75,77,82 };
int key, index;
printf(">请输入要查找的数字:");
scanf("%d", &key);
index = binarySearch(d, 0, SIZE - 1, key);
if (index == -1)
printf("没有此数字\n");
else
printf("此数字在数据中的下标为:%d\n",index);
return 0;
}
int binarySearch(int arr[], int low, int high, int key)
{
int i;
if (low > high)
i = -1;
else
{
int mid = (high + low) / 2;
if (arr[mid] == key)
i = mid;
else if (arr[mid] > key)
i = binarySearch(arr, low, mid - 1, key);
else
i = binarySearch(arr, mid + 1, high, key);
}
return i;
}
3. Show
结果如图所示。