amortized-analysis

    4

    2答えて

    単純な例として、動的配列の特定の実装では、配列がいっぱいになるたびに配列のサイズを2倍にします。 このため、配列の再割り当てが必要になることがあります。最悪の場合、挿入にはO(n)が必要です。 しかし、残りの挿入は一定の時間内に行われるので、n個の挿入はO(n)時間で完了することができます。 したがって、オペレーションごとの償却された時間は、O(n)/ n = O(1)です。 --with Wik

    1

    2答えて

    整数の配列の次の辞書順列(例:123,132,213,231,312,323)を計算するアルゴリズムを作成しました。私はコードが必要だと思っていないが、私はそれを以下に含めた。 私はO(n)の最悪の場合の時間コストを適切に決定したと思います。ここで、nは配列内の要素の数です。しかし、あなたが "償却コスト"を利用する場合、時間コストは平均的にO(1)として正確に表示されることがわかります。 質問:

    16

    3答えて

    std :: vectorの後ろの挿入(push_back)の解析はどのように行うのですか?償却された時間は挿入あたりO(1)です。特にvideo in channel9 by Stephan T Lavavejとin this (17:42 onwards)では、最適なパフォーマンスのために、この方法をMicrosoftが実装すると、ベクトルの容量が約1.5増加すると言います。 この定数はどのよ

    3

    4答えて

    私は、左から右に格納されたリストとして表示できる抽象データ型を持っています。次の操作が可能です。 プッシュ:リストの左端に新しい項目を追加します ポップ: プル:リストの右端にある項目を削除する プッシュ、ポップ、プル操作の償却時間が一定になるように、3つのスタックと一定の追加メモリを使用してこれを実装します。スタックには基本操作、isEmpty、Push、Popがあります。 償却時間とは、「私が

    3

    1答えて

    フィボナッチヒープは、CLRSが の仕組みを理解するための本当に良い試みをしたにもかかわらず、分かりにくいことを証明しています。しかし、いくつかの質問 は私には本当に不明確である: なぜあなたは、T + 2mのようなポテンシャル関数を選ぶのでしょうか?推論は何ですか? ノードのマーキングの理由は何ですか? ノードをルートリストなどに置くと便利ですが、なぜこのようなスキームが思い浮かぶでしょうか?

    3

    1答えて

    私は、コードの一部にベクトルを使うのが効率的なアプリケーションを持っています。しかし、計算中にいくつかの要素を追跡する必要があります。私はData.VectorsからO(n)償却連結を得ることができると聞いていますが(通常の配列成長トリックで)、私は正しいことをしていないと思います。だから我々は次のセットアップを持って言うことができます: import Data.Vector((++),Vecto

    -1

    1答えて

    バイカーは、風の流れに合わせて24kms /時で走行できますが、風に対しては毎時12kmsしか走行できません。バイカーが同じポイントで開始して終了すると仮定します。 搭乗者の償却率はどのくらいですか? 答えがどのように到着したのか分かりません。私は講義ノートを読みましたが、少し混乱します。 おかげ