ホームページ > バックエンド開発 > C++ > 分割統治再帰のための高度なマスター定理

分割統治再帰のための高度なマスター定理

王林
リリース: 2023-08-31 21:09:17
転載
994 人が閲覧しました

分割統治再帰のための高度なマスター定理

分割統治は、問題を同様のタイプの複数のサブ問題に再帰的に分解することに基づいたアルゴリズムであり、これらのサブ問題は簡単に解決できます。

分割統治手法をより深く理解するために例を挙げてみましょう -

function recursive(input x size n)
   if(n < k)
      Divide the input into m subproblems of size n/p.
      and call f recursively of each sub problem
   else
      Solve x and return
ログイン後にコピー

すべての部分問題の結果を結合し、元の問題の解を返します。

説明 - 上記の問題では、問題セットは簡単に解決できる小さなサブ問題に再分割されます。

分割統治のマスター定理 は、再帰関係アルゴリズムのビッグ 0 値を決定するために使用できる分析定理です。アルゴリズムに必要な時間を見つけて、漸近表記形式で表すために使用されます。

例上記の例の問題の実行時値 -

T(n) = f(n) + m.T(n/p)
ログイン後にコピー

ほとんどの再帰的アルゴリズムでは、マスターの定理を使用するアルゴリズムの時間計算量を見つけることができますが、場合によってはマスターの定理が見つからない場合もあります。これらはマスターの定理が適用できない場合です。問題 T(n) が単調でない場合、たとえば、T(n) = sin n です。問題関数 f(n) は多項式ではありません。

このような場合、時間計算量を求めるためのマスター定理は効率的ではないため、再帰的再帰のための高度なマスター定理が設計されました。これは、-

T(n) = aT(n/b) + &oslash;((n^k)logpn)
ログイン後にコピー

の形式の再帰問題を処理するように設計されています。 n は問題の規模です。

a = 再帰内の部分問題の数、a > 0

n/b = 各部分問題のサイズ b > 1、k >= 0、p は実数です。

このタイプの問題を解決するには、次の解決策を使用します:

  • If a > bk, then T(n) = ∅ ( nlogba)
  • If a = bk, then
    • If p > -1, then T(n) = ∅(nlogba logp 1n )
    • p = -1 の場合、T(n) = ∅(nlogba loglogn)
    • p ba)
  • If a k, then
    • if p > = 0 , then T(n) = ∅(nklogpn)
    • p

高レベルのマスター アルゴリズムを使用して、いくつかのアルゴリズムの複雑さを計算します。 -

二分探索 - t(n) = θ ( logn)

マージソート − T(n) = θ(nlogn)

以上が分割統治再帰のための高度なマスター定理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート