//注意::前提::
//必须提前排好序,才能进行二分查找
//本代码中使用的age数组已按升序存放
#include <iostream>
using namespace std;
int EFCZ_age(int* age, int min, int max, int value) {
if (min > max) { return -1; } //找不到元素
int mid = (max + min) / 2;
if (age[mid] == value) { return mid; }//找到
else if (value > age[mid]) { return EFCZ(age, mid + 1, max, value); }
else if (value < age[mid]) { return EFCZ(age, min, mid - 1, value); }
}
int main() {
int age[10] = { 5,7,11,15,19,21,26,27,61,99 };
int index = EFCZ_age(age, 0, 9, 26);// 数组,从0~9的下标中,找到26 并返回下标
cout << index << endl;
return 0;
}
用递归实现二分查找(c++)
最新推荐文章于 2023-06-25 18:31:12 发布