我正在做一些练习,以便我可以通过递归的东西。其中之一是我试图用递归重写线性搜索。这里是:
int linearSearch(int a[], int n, int key)
{
if (n < 0 )
{
return -1;
}
if(key == a[n-1])
{
return n - 1;
}
linearSearch(a, n-1, key); // Line 1
}
如果没有return
语句,则代码无法正确执行。我不明白为什么我们需要将return
语句放在第 1 行?在这种情况下,我们需要递归调用只是为了将 n 减 1 吗?