Pascal - Susun dengan penggabungan- rekursi

Berikut adalah prosedur rekursif yang boleh menyusun pelbagai n bilangan bulat menggunakan kaedah Gabungkan jenis

 Sort_Merge Prosedur (Var t: TAB; g, d: integer);

Var

m, i, j, k: integer;

s: TAB;

Mulakan

Jika d> g Kemudian

Mulakan

m: = (g + d) Div 2;

Sort_Merge (t, g, m);

Sort_Merge (t, m + 1, d);

Untuk i: = m DownTo g Do

s [i]: = t [i];

Untuk j: = m + 1 Untuk d Do

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

i: = g; j: = d;

Untuk k: = g To d Do

Mulakan

Jika s [i] <s [j] Kemudian

Mulakan

t [k]: = s [i];

i: = i + 1;

Akhirnya

Lain

Mulakan

t [k]: = s [j];

j: = j - 1;

Akhir;

Akhir;

Akhir;

Akhir;

Terima kasih kepada Zouari Lazhar untuk mendapatkan tip ini.

Artikel Sebelumnya Artikel Seterusnya

Tip-Tip Utama