Delphi Fonksiyonu: HizliListBoxSirala

En hızlı sıralama algoritması olan QuickSort ile bir listbox'ı sıralayan fonksiyon.

 

procedure TForm1.HizliListBoxSirala(var Liste: TListbox; alt,ust:integer);
var
  i,j:integer;
  x,tut:string;
begin
  i:=alt;
  j:=ust;
  x:= liste.Items[(alt+ust) div 2];   //Orta elemanı bul
  Repeat
    while liste.Items[i]<x do inc(i); //i'yi arttır
    while x<liste.Items[j] do dec(j); //j'yi azalt
    if i<=j then
    begin
      tut:=liste.Items[i];
      liste.Items[i]:=liste.Items[j];
      liste.Items[j]:=tut;
      inc(i);
      dec(j);
    end;
  Until i>j;
  if j>alt then HizliListBoxSirala(liste,alt,j);
  if i<ust then HizliListBoxSirala(liste,i,ust);
end;

//Kullanımı
procedure TForm1.Button1Click(Sender: TObject);
begin
  HizliListBoxSirala(listbox1,0,listbox1.Items.Count-1);
  ShowMessage('tamam');
end;

 

13.11.2008 10:18:33

Yorumlar

Bu yazıya henüz yorum yapılmamış.

Yazı hakkında yorum yapmak için, buraya tıklayın.

Kategoriler :

Arşiv :

Etiketler :

Bağlantılar :