SOURCE:
program QuickSort;
uses WinCrt;
type Array100 = array [1..100] of integer;
var
  Data: Array100;
  DataCount: Integer;
procedure InputData(var d: Array100; var c: Integer);
var
  Code, k: Integer;
  i: String;
begin
  k := 1;
  Writeln('Quick Sort');
  Writeln('-----------');
  Writeln;
  repeat     
    Write('Masukkan angka ke-',k,' : ');readln(i);
    if(i <> '') then
    begin
      Val(i,d[k],Code);
      if(Code <> 0) then
        d[k] := 0;
    end;
    Inc(k);
  until (k > 100) or (i = '');
  c := k - 2;
end;
procedure Swap(var a,b: Integer);
var
  t: Integer;
begin
  t := a;
  a := b;
  b := t;  
end;
procedure Tampil(d: Array100; c: Integer);
var
  i: Integer;
begin
  for i:=1 to c do
    Write(d[i]:5);
    Writeln;
end; 
procedure Sorting(var d: Array100; a,b: Integer);
var
  a1, b1, pivot: Integer;
begin
  a1:=a;
  b1:=b;
  pivot:= d[(a+b) div 2];
  repeat
    while(d[a1] < pivot) do
      Inc(a1);
    while(d[b1] > pivot) do
      Dec(b1);
    if (a1<=b1) then
    begin
      Swap(d[a1], d[b1]);
      Inc(a1);
      Dec(b1);
    end;
  until (a1 > b1);
  Tampil(d,b);
  if (a < b1) then
    Sorting(d,a,b1);
  if (a1 < b) then
    Sorting(d,a1,b);
end; 
begin
  InputData(Data, DataCount);
  Writeln;
  Writeln('Sebelum diurutkan');
  Tampil(Data,DataCount);
  Sorting(Data,1,DataCount);  {data, index terkecil, index terbesar/banyak data}
  Writeln;
  Writeln('Sesudah diurutkan');
  Tampil(Data,DataCount);
end.
OUTPUT:
Quick Sort
-----------
Masukkan angka ke-1 : 9
Masukkan angka ke-2 : 8
Masukkan angka ke-3 : 7
Masukkan angka ke-4 : 6
Masukkan angka ke-5 : 5
Masukkan angka ke-6 : 4
Masukkan angka ke-7 : 3
Masukkan angka ke-8 : 2
Masukkan angka ke-9 : 1
Masukkan angka ke-10 :
Sebelum diurutkan
    9    8    7    6    5    4    3    2    1
    1    2    3    4    5    6    7    8    9
    1    2    3    4
    1    2    3    4
    1    2    3    4    5    6    7    8    9
    1    2    3    4    5    6    7    8    9
Sesudah diurutkan
    1    2    3    4    5    6    7    8    9
 



No Comment.
Add Your Comment