Selamat Pagi
Ini program Sorting dengan jenis Heap Sort. Programnya biasa, hanya menampilkan data yang di random oleh komputer. semoga program ini bermanfaat bagi kalian. ^^
Source Code
|
Program Heap_Sort;
uses crt;
Type TIntArray = array[1..100] of integer;
var data
: TIntArray;
i : integer;
Procedure SiftDown(var
a: TIntArray ; start, ende :integer);
var root, child, swap :
integer;
begin
root:=start;
while root*2-start+1<=ende do
begin
child:=root*2-start+1;
if (child+1<=ende) and
(a[child]<a[child+1]) then
inc(child);
if a[root]<a[child] then
begin
swap:=a[root];
a[root]:=a[child];
a[child]:=swap;
root:=child;
end
else
exit;
end;
end;
Procedure heapify(var a:
TIntArray);
var start, count :
integer;
begin
count:=length(a);
start:=low(a)+count div 2-1;
while start>=low(a) do
begin
siftdown(a, start, high(a));
dec(start);
end;
end;
Procedure heapsort(var
a:TintArray);
var ende, swap :
integer;
begin
heapify(a);
ende:=high(a);
while ende>low(a) do
begin
swap:=a[low(a)];
a[low(a)]:=a[ende];
a[ende]:=swap;
dec(ende);
siftdown(a,low(a),ende);
end;
end;
Begin
clrscr;
Randomize;
gotoxy(28,1); writeln('>>> PROGRAM
HEAP SORT <<<');
writeln;
writeln('Data Sebelum di Sorting : ');
for i:=low(data) to high(data) do
begin
data[i]:=Random(high(data));
write(data[i]:4);
end;
writeln;
heapsort(data);
writeln('Data Sesudah di Sorting : ');
for i:=low(data) to high(data) do
begin
write(data[i]:4);
end;
readln
End.
|
Tidak ada komentar:
Posting Komentar