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)は、