0

大量のスタック メモリの使用を回避する方法で書き換えることができない再帰アルゴリズム/関数の例を考え出そうとしています (つまり、完全に末尾再帰にすることも、スタックを使用しないループを使用して書き換えることもできません)。そのような機能は存在しますか?

クイックソートが候補になるかもしれませんが、単一の末尾再帰関数呼び出しを使用するように書き直すことができるかどうかはわかりません。

4

1 に答える 1

0

一般的なケースで複数の呼び出しを必要とするすべてのアルゴリズムは、最初の呼び出しが末尾の位置になく、常に継続があるため、反復またはスタックの成長のためのバックトラック スタックなしでは実行できません。

単純なフィボナッチ、クイックソート、ツリーの合計はすべてそのカテゴリに含まれます。

于 2013-09-19T06:56:25.313 に答える