このアルゴリズムでは、8 回の乗算と 4 回の加算が時間の複雑さで使用されることを理解しています。
乗算はすべてのn/2 * n/2
行列で行われます。これについていくつか質問があります:
- を実行することで、最終的にすべての
n * n
マトリックスのn=1
サイズが縮小されT(n/2)
ますか? その場合、以下の行列を返すのa11*b11
と同じように、返すことは無意味に思えます。1*6
a11*b11
次に、基本ケースはn==2
else部分を実行する必要があります。これは、以下の操作が正当であるように思われるためです。
- 足し算の部分がなぜかかっているの
0(n^2)
ですか?2 * 2
つまり、すべての行列が以下のように縮小されるため、行列の加算ではなく単なる数値を扱っているということです。
では、加算部分は 4 だけ貢献する必要がありますか? (なぜ0(n^2)
?)