Quick Sort

Minggu, 21 Juni 2015

Quick Sort



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
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

Hasil Running
Masukkan nilai lalu klik button 'Tambah'
Masukkan data sesuai yang diinginkan setelah itu klik button 'Proses'
Hasil akhir
Sekian ~~


















































Share this article :

0 komentar:

Speak up your mind

Tell us what you're thinking... !

 
Support : Creating Website | Mey | Maisi Army's
Copyright © 2011. Mr. Blog - All Rights Reserved
Template Created by Maisi Army's Inspired by Maisi Army's
Proudly powered by Blogger