アルゴリズムを作成し、その再帰を見つけて解決する必要があります。再発を見つけて困惑しました..
foo(A, C)
if (C.Length = 0)
Sum(A)
else
t = C.Pop()
A.Push(t)
foo(A,C)
foo(A,C)
最初は A は空で、C.Length = n です。それは許可されていないため、実際のアルゴリズムを提供することはできません。
私のインストラクターは、2 つの変数を使用しようとするかもしれないと私に言いました。これは私が思いついたものです:
T(n, i) = { n if i = 0
2*T(n, i-1) + C if i != 0
解決できなかったので、変数を 1 つだけ使用して再発を解決しようとしました。
T(n) = { n0 if n = 0
2*T(n-1) + C if n != 0
ここで、n0 は n の初期値です。
基本ケースの複雑さが O(n) であるアルゴリズムからどのように再帰を形成しますか?