- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

QuickSort Kategori: Blandat
Inlagt: 2006-03-16
Läst: 1223
Inlagt av: Staffan Berg
Beskrivning
En användbar algoritm som sorterar snabbt och effektivt.
Kod
procedure Quick_Sort(var A: array of Integer); 
 
procedure QuickSort(var A: array of Integer; iLo, iHi: Integer); 
var 
  Lo, Hi, Mid, T: Integer; 
begin 
  Lo := iLo; 
  Hi := iHi; 
  Mid := A[(Lo + Hi) div 2]; 
  repeat 
   while A[Lo] < Mid do Inc(Lo); 
   while A[Hi] > Mid 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; 
 
begin 
QuickSort(A, Low(A), High(A)); 
end; 
 
//så här kan du exempelvis sortera en array 
 
procedure TForm1.Button1Click(Sender: TObject); 
var 
arr: array[0..100] of integer; 
I: Integer; 
begin 
for I:=Low(arr) to High(arr) do 
  arr[I]:=Random(High(Integer)); 
 
Quick_Sort(arr); 
end;

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -