unit Uhaupt;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Menus, StdCtrls, Grids, USort, ExtCtrls, Buttons;
type
TFAnwendung =
class(TForm)
MAnwendung: TMainMenu;
MDatei: TMenuItem;
MBeenden: TMenuItem;
SGAusgabe: TStringGrid;
Start: TBitBtn;
procedure MBeendenClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure StartClick(Sender: TObject);
private
procedure Listengenerierung;
procedure Sort(i, fall : integer; locliste:tliste);
public
{ Public-Deklarationen }
end;
var
FAnwendung : TFAnwendung;
implementation
{$R *.DFM}
procedure TFAnwendung.FormCreate(Sender: TObject);
begin
SGAusgabe.Cells[0,0]:='
Nr';
SGAusgabe.Cells[1,0]:='
Zufall';
SGausgabe.Cells[2,0]:='
BestCase';
SGausgabe.Cells[3,0]:='
WorstCase';
SGausgabe.Cells[0,1]:='
Bubble';
SGausgabe.Cells[0,2]:='
Choice';
SGausgabe.Cells[0,3]:='
Insert';
SGausgabe.Cells[0,4]:='
Shaker';
SGausgabe.Cells[0,5]:='
Mischen';
SGausgabe.Cells[0,6]:='
Heap';
SGausgabe.Cells[0,7]:='
Quick';
end;
procedure TFanwendung.Sort(i, fall:integer; locliste:Tliste);
Var
c, t1, t2 : int64;
t : integer;
begin
QueryPerformanceFrequency(c);
QueryPerformanceCounter(t1);
case i
of
1 : LocListe.SortierenBubble;
2 : LocListe.SortierenChoice;
3 : LocListe.SortierenInsert;
4 : LocListe.SortierenShake;
5 : LocListe.SortierenMisch(0,Maxzahl);
6 : LocListe.SortierenHeap;
7 : LocListe.SortierenQuick(0,MaxZahl);
end;
QueryPerformanceCounter(t2);
t := 1000000 *(t2 -t1)
div c;
SGausgabe.Cells[fall,i]:=IntToStr(t) +'
mys';
end;
procedure TFAnwendung.Listengenerierung;
var zahl, i : integer;
globleast, globbest, globrandom : tliste;
begin
globbest := Tliste.Create;
globrandom := Tliste.Create;
globleast := Tliste.Create;
randomize;
for i := maxzahl
downto 1
do
begin
globleast.speichern(i);
end;
for i := 1
to maxzahl
do
begin
globbest.speichern(i);
end;
for i := 1
to maxzahl
do
begin
zahl:= random(60000);
Globrandom.speichern(zahl);
end;
for i := 1
to 7
do
begin
Sort(i, 1, globrandom); <<< Hier ist das Problem... irgendwie wird die Random Liste überschrieben, obwohl das garnet möglich ist.... :((((
end;
for i := 1
to 7
do
begin
Sort(i, 2, globbest);
end;
for i := 1
to 7
do
begin
Sort(i, 3, globleast);
end;
end;
procedure TFAnwendung.StartClick(Sender: TObject);
begin
Listengenerierung;
end;
procedure TFAnwendung.MBeendenClick(Sender: TObject);
begin
Close;
end;
end.
// of TFAnwendung