Quicksort adalah salah satu
algoritma untuk mengurutkan sejumlah deret baris bilangan
Quicksort bukanlah algoritma yang tercepat dan terbaik dalam
pengurutan, tapi setidaknya jauh lebih baik dari beberapa algortima lain
seperti bubblesort,insertion sort,dll.
Algoritma ini sangat
berguna ketika kita ingin mengurutkan data yang lumayan besar. Dalam dunia
olimpiade komputer, quicksort adalah salah satu algoritma yang penting dan
sering digunakan ketika sedang coding(membuat program) yang
membutuhkan pengurutan data-data yang besar di dalamnya.
Tampilan listing progam pengurutan data tersebut seperti gambar di bawah ini.
Tampilan listing progam pengurutan data tersebut seperti gambar di bawah ini.
Dan untuk scriptnya bisa ditulis di bawah ini:
unit quicksortproject;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls;
type
TFQuickSort = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
ListBox1: TListBox;
ListBox2: TListBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
Data:array of integer;
public
{ Public declarations }
end;
var
FQuickSort: TFQuickSort;
implementation
{$R *.dfm}
procedure QuickSort(var A:array of integer;iLo,iHi:integer);
var
Lo,Hi,Pivot,T:integer;
begin
Lo:=iLo;
Hi:=iHi;
Pivot:=A[(Lo+Hi) div 2];
repeat
while A[Lo]<Pivot do Inc(Lo);
while A[Hi]>Pivot do Dec(Hi);
if Lo<=Hi then
begin
T:=A[Lo];
A[Lo]:=A[Hi];
A[Hi]:=T;
Inc(Lo);
Dec(Hi);
end;
until Lo>Hi;
if Hi>iLo then QuickSort(A,iLo,Hi);
if Lo<iHi then QuickSort(A,Lo,iHi);
end;
procedure TFQuickSort.Button1Click(Sender: TObject);
var
nilai:integer;
begin
//menambahkan nilai ke listbox
if TryStrToInt(Edit1.Text,Nilai) then
ListBox1.Items.Add(IntToStr(nilai));
//membersihkan komponen inputan nilai
Edit1.Clear;
//focus kursor ke inputan nilai
Edit1.SetFocus;
end;
procedure TFQuickSort.Button2Click(Sender: TObject);
var
indek:Word;
begin
//menentukan panjang array
SetLength(Data,ListBox1.Items.Count);
//pemasukan nilai ke array
for indek:=0 to ListBox1.Items.Count-1 do
Data[indek]:=StrToInt(ListBox1.Items[indek]);
//proses pengurutan/sorting
QuickSort(data,Low(Data),High(Data));
//kosongkan hasil
ListBox2.Items.Clear;
//memasukkan nilai hasil
for indek:=0 to ListBox1.Items.Count-1 do
ListBox2.Items.Add(IntToStr(data[indek]));
end;
procedure TFQuickSort.Button3Click(Sender: TObject);
begin
close;
end;
end.
nah diatas itu script nya ... silah kan ditulis dan di coba ^^
dan jangan lupa setelah mengetik si simpan ..
cara savenya :
*Save as
: untuk menyimpan editornya
*Save Project As : untuk menyimpan project nya
Sekian ~~
0 komentar:
Posting Komentar