gpt4 book ai didi

c - 二分查找(递归实现)

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:19 25 4
gpt4 key购买 nike

<分区>

我想在递归中编写二进制搜索代码。我首先写下这个:

int rSearch(int numbers[],int start, int end, int x){
int mid;
if(start <= end){
mid = (start + end)/2;
if(numbers[mid] == x)
return mid;
else if(numbers[mid] > x)
rSearch2(numbers, start, mid-1, x);
else
rSearch2(numbers, mid+1, end, x);

} else
return -1;
}

而且它工作完美。但是在我搜索之后我明白我必须写这样的代码:

int rSearch2(int numbers[],int start, int end, int x){
int mid;
if(start <= end){
mid = (start + end)/2;
if(numbers[mid] == x)
return mid;
else if(numbers[mid] > x)
return rSearch2(numbers, start, mid-1, x);
else
return rSearch2(numbers, mid+1, end, x);

} else
return -1;
}

因为在第一段代码中我们可能没有返回值。
我的问题是为什么第一个代码有效?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com