递归实现折半查找

#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;

}

posted @ 2021-12-13 21:12  师大无雨  阅读(456)  评论(0)    收藏  举报