分治[2019.5.25]

  1は、問題の最近の一次元版であるデザインは、直接分割統治アルゴリズム技術に基づいて、その時の複雑さを決定しています。入力点が昇順に配列Aに格納されていると仮定すると。(最も近い点定義:M点の集合が与えられると、点の最も近い対を見つけます。)

  思考:再帰問題と上層ダウンサブ問題に、上方比較分間ボトムアップ中性子から各問題でパーティション。

  入力:シーケンスポイントアレイAを昇順保存

INT(閉じるINT {[A ... B])
     IF(== b)は戻りエラー、
     他の IF(BA == 1を返す [B] - [A];
     {
           int型 C = INTを( (A + B)/ 2);    // 複数の数字、各パーティション再帰&下位問題、次いで分
          リターン分{閉じる([A ... C])、閉じる([C ... B] )、A [Cの+ 1 ] - [C];} 
    } 
}

  出力:数値のペアの最短距離

  時間の複雑さ:θ(n)は、

 

  2、バイナリツリー内の層の数を計算するように設計されたパーティションのアルゴリズム。(空のツリー戻り0は、単一頂点ツリーを返す)、その時間の複雑さを決定します。

  アイデア:ツリーが空の場合、水の問題は、バイナリツリーTのために、高さは0であり、そうでない場合は、左の部分木と右のサブツリーの高さを求めている、再帰をすることができます。

  入力:バイナリツリーT

INT 高さ(ツリーT){
 もし T = NULLを
     リターン 0 ;
  戻り最大{高さ(left_T)、高さ(right_T)} + 1 
}

 

  出力:バイナリツリーの層

  時間の複雑さ:θ(n)は、

 

おすすめ

転載: www.cnblogs.com/fangxiaoqi/p/11020767.html