...
var a:array[1..10000] of Integer;
n,x,i,j,k:integer;
t1,t2:TDateTime;
...
begin//czyszczenie Memo
Memo1.Clear;
Memo2.Clear;
//odczyt ilości elementów tablicy z Edit1
n:=StrtoInt(Edit1.text);
//zapełnianie tablicy liczbami losowymi z zakresu: 0..999for i:=1 to n do a[i]:=random(1000);
//wizualizacja tablicy nieposortowanejif CheckBox1.Checked thenfor i:=1 to n do
Memo1.Lines.Add(InttOStr(i)+') '+IntToStr(a[i]));
//sortowanie metodą wyszukiwania wartości min/max//w iteracyjnie skracanym podciągu liczb
t1:=now; //stoper start!for i:=1 to n-1 do
begin
k:=i;
for j:=i+1 to n do
if a[k]>a[j] then k:=j;
x:=a[k];
a[k]:=a[i];
a[i]:=x;
end;
t2:=now; //stoper stop!//wizualizacja tablicy posortowanejif CheckBox1.Checked thenfor i:=1 to n do
Memo2.Lines.Add(InttOStr(i)+') '+IntToStr(a[i]));
//wizualizacja czasu sortowania
Label1.Caption:=FloatToStr((t2-t1)*24*60*60*1000)+' [ms]'
end;
"Bąbelkowe"
...
var a:array[1..10000] of Integer;
n,x,i:integer;
t1,t2:TDateTime;
koniec:boolean;
...
begin//czyszczenie Memo
Memo1.Clear;
Memo2.Clear;
//odczyt ilości elementów tablicy z Edit1
n:=StrtoInt(Edit1.text);
//zapełnianie tablicy liczbami losowymi z zakresu: 0..999for i:=1 to n do a[i]:=random(1000);
//wizualizacja tablicy nieposortowanejif CheckBox1.Checked thenfor i:=1 to n do
Memo1.Lines.Add(InttOStr(i)+') '+IntToStr(a[i]));
//sortowanie metodą "bąbelkową"
t1:=now; //stoper start!
repeat
koniec:=true;
for i:=1 to n-1 doif a[i]>a[i+1] thenbegin
x:=a[i];
a[i]:=a[i+1];
a[i+1]:=x;
koniec:=false
end;
until koniec;
t2:=now; //stoper stop!
//wizualizacja tablicy posortowanejif CheckBox1.Checked thenfor i:=1 to n do
Memo2.Lines.Add(InttOStr(i)+') '+IntToStr(a[i]));
//wizualizacja czasu sortowania
Label2.Caption:=FloatToStr((t2-t1)*24*60*60*1000)+' [ms]'
end;