パスカル - マージ再帰によるソート

これはMerge sortの方法を使ってn個の整数の配列をソートできる再帰的手続きです

 プロシージャSort_Merge(変数t:TAB; g、d:整数);

Var

m、i、j、k:整数。

s:TAB;

ベギン

d> gなら

ベギン

m:=(g + d)Div 2。

Sort_Merge(t、g、m);

Sort_Merge(t、m + 1、d);

iの場合:= m DownTo g Do

s [i]:= t [i];

jの場合:= m + 1からdへ

s [d + m + 1 - j]:= t [j];

i:= g。 j:= d;

kに対して:= g dに対して

ベギン

s [i] <s [j]の場合

ベギン

t [k]:= s [i];

i:= i + 1。

終わり

そうでなければ

ベギン

t [k]:= s [j];

j:= j − 1。

終わり;

終わり;

終わり;

終わり;

このヒントを提供してくれたZouari Lazharに感謝します。

前の記事 次の記事

トップのヒント