REKURSI
program
rekursi;
{$APPTYPE
CONSOLE}
Uses
SysUtils;
type
tipe_larik = string[20];
larik_urut = array [1..1000] of tipe_larik;
procedure quicksort(var a : larik_urut;
bawah, atas:word);
var i,j:Word;
sementara :tipe_larik;
Begin
While atas > bawah do
Begin
i := bawah;
j := atas;
sementara:= a[bawah];
{Memecah Larik Menjadi dua
Bagian}
while i<j do
Begin
While a[j]>sementara do
j:=j-1;
a[i]:=a[j];
while (i<j) And
(a[i] <= sementara) do
i:=i+1;
a[j]:=a[i];
end;
a[i]:= sementara;
{Urutkan Rekursi}
quicksort(a,bawah,i-1);
bawah:=i+1;
end;
end;
var
nama:larik_urut;
b,i:Word;
Begin
writeln('=================================================');
writeln(' BELAJAR PENGURUTAN DATA ');
writeln('=================================================');
writeln('Berapa Banyak Data
Anda yang Akan Di Urutkan...? '); Readln(b);
Writeln;
writeln('Masukkan Data Anda :
');
for i:=1 to b do
Begin
write('Data Ke
',i,'?'); Readln(nama[i]);
end;
{Urutkan dengan Procedure
Quicksort}
quicksort(nama,1,b);
{Tampilan data yang di
urutkan}
Writeln;
Writeln('Data yang Telah
di urutkan : ');
for i:= 1 to b do
Writeln(nama[i]);
Readln;
{ TODO -oUser -cConsole Main : Insert code
here }
end.
0 komentar:
Posting Komentar