ソートマージ(マージ)

まず、アルゴリズムのアイデア:

  分割統治:ベクトルLIST  

  2へのシーケンス   // O(1)

  ソート再帰配列   // 2×T(N / 2 )

  合わせた順序付きシーケンス   // O(N)

 


 

第二に、例えば次のように:

  T(N)= 2 * T(N / 2)+ O(N)T(N)= O(nlog(n))を交換法を用いて解くことができ、O(n)がソートされた2つのサブシーケンスをマージ時間。

  

 

  次のような原理をマージマージ:

  

     以下を達成するためにマージマージ:

   オープン要素Bの_elemを格納するためのスペース[LO、MI)であり、ハイテク、[マイルを_elem)の要素は、それだけでこのメモリCを指すポインタを定義する必要があり、新しいキャッシュのためのスペースを開放する必要はありません。

  

  再び改善マージ:

  Cが消耗を待つ必要がなく、一度に空乏化Bを終了する。完全空乏ときCはAとBの半分であるため、[I ++] = C [++ K]を実行する必要はありません。したがって、2つのループ本体の順序を変更すること、冗長なロジックを削除。

  

  複雑マージ: 最悪の場合には、全体としてJ + Kを、唯一のO(n)は線形時間です。

  

 

おすすめ

転載: www.cnblogs.com/ccpang/p/11416256.html