私は再帰的なものを得ることができるようにいくつかの練習をしています。これらのうちの1つは、再帰で線形検索を書き直そうとしていることです。ここには:再帰呼び出しによる線形探索アルゴリズム?
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だけ減らすために再帰的に呼び出す必要がありますか?
を
return linearSearch(a, n-1, key);
を書く必要があります...変更が必須であってもn> 0の場合。 – smichak