unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 =
class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);
procedure StringGrid2Click(Sender: TObject);
procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure StringGrid2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Liste:
array[1..100000]
of integer;
ListeMisch:
array[1..100000]
of integer;
ListeQuick:
array[1..100000]
of integer;
l: integer;
vertausche,vergleiche,Mischtausch,Mischvergleich: integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var i,k: integer;
begin
For k:= 1
to 64
do
begin
For i:= 1
to 35
do
begin
stringgrid1.Cells[i,k]:=inttostr(0);
end;
end;
For k:= 1
to 64
do
begin
For i:= 1
to 35
do
begin
stringgrid2.Cells[i,k]:=inttostr(0);
end;
end;
stringgrid1.cells[0,1]:='
Abschreiber/in';
stringgrid1.cells[0,2]:='
Angeber/in';
stringgrid1.cells[0,3]:='
Antisportler/in';
stringgrid1.cells[0,4]:='
Arroganteste/r';
stringgrid1.cells[0,5]:='
Besserwisser/in';
stringgrid1.cells[0,6]:='
beste Frisur';
stringgrid1.cells[0,7]:='
beste/r Schauspieler/in';
stringgrid1.cells[0,8]:='
dümmste Fragen';
stringgrid1.cells[0,9]:='
Bestgelaunteste/r';
stringgrid1.cells[0,10]:='
Clown';
stringgrid1.cells[0,11]:='
Rätsel';
stringgrid1.cells[0,12]:='
Eitelste/r';
stringgrid1.cells[0,13]:='
Millionär/in';
stringgrid1.cells[0,14]:='
Vater/Mutter';
stringgrid1.cells[0,15]:='
Extrovertierteste/r';
stringgrid1.cells[0,16]:='
Faulste/r';
stringgrid1.cells[0,17]:='
Freak';
stringgrid1.cells[0,18]:='
Geizigste/r';
stringgrid1.cells[0,19]:='
Höflichste/r';
stringgrid1.cells[0,20]:='
Infantilste/r';
stringgrid1.cells[0,21]:='
Intelligenzbestie';
stringgrid1.cells[0,22]:='
Interessanteste/r';
stringgrid1.cells[0,23]:='
Lache';
stringgrid1.cells[0,24]:='
Kreativste/r';
stringgrid1.cells[0,25]:='
Lehrerliebling';
stringgrid1.cells[0,26]:='
Lustigste/r';
stringgrid1.cells[0,27]:='
Macho/Tussi';
stringgrid1.cells[0,28]:='
Mr/Ms Fashion';
stringgrid1.cells[0,29]:='
Mr/Ms Max Planck';
stringgrid1.cells[0,30]:='
Mitläufer/in';
stringgrid1.cells[0,31]:='
möchtegern-witzig';
stringgrid1.cells[0,32]:='
Morgenmuffel';
stringgrid1.cells[0,33]:='
nervigste Stimme';
stringgrid1.cells[0,34]:='
Netteste/r';
stringgrid1.cells[0,35]:='
Nikotinopfer';
stringgrid1.cells[0,36]:='
Öko';
stringgrid1.cells[0,37]:='
One-Night';
stringgrid1.cells[0,38]:='
Partyking';
stringgrid1.cells[0,39]:='
Partykotzer/in';
stringgrid1.cells[0,40]:='
politische Ansicht';
stringgrid1.cells[0,41]:='
Schleimer/in';
stringgrid1.cells[0,42]:='
Schnacker/in';
stringgrid1.cells[0,43]:='
Schnapsdrossel';
stringgrid1.cells[0,44]:='
Schnorrer/in';
stringgrid1.cells[0,45]:='
Schönheit';
stringgrid1.cells[0,46]:='
schönstes Lächeln';
stringgrid1.cells[0,47]:='
Schwänzer/in';
stringgrid1.cells[0,48]:='
Sozialste/r';
stringgrid1.cells[0,49]:='
Sportlichste/r';
stringgrid1.cells[0,50]:='
Stimmungskanone';
stringgrid1.cells[0,51]:='
Tollpatsch';
stringgrid1.cells[0,52]:='
Body';
stringgrid1.cells[0,53]:='
Schwiegertraum';
stringgrid1.cells[0,54]:='
Unauffälligste/r';
stringgrid1.cells[0,55]:='
Unselbsständigste/r';
stringgrid1.cells[0,56]:='
Verkehrsrowdy';
stringgrid1.cells[0,57]:='
Verplanteste/r';
stringgrid1.cells[0,58]:='
Verwöhnteste/r';
stringgrid1.cells[0,59]:='
Weichei';
stringgrid1.cells[0,60]:='
Wichtigtuer';
stringgrid1.cells[0,61]:='
Wichtigtuer/in';
stringgrid1.cells[0,62]:='
Zicke';
stringgrid1.cells[0,63]:='
Zuspätkommer/in';
stringgrid1.cells[0,64]:='
Zuverlässigste/r';
stringgrid1.cells[1,0]:='
Anneke';
stringgrid1.cells[2,0]:='
Anh';
stringgrid1.cells[3,0]:='
Annika';
stringgrid1.cells[4,0]:='
Ann-Cathrin';
stringgrid1.cells[5,0]:='
Felicitas';
stringgrid1.cells[6,0]:='
Finja';
stringgrid1.cells[7,0]:='
Hanna';
stringgrid1.cells[8,0]:='
Joana';
stringgrid1.cells[9,0]:='
Johanna';
stringgrid1.cells[10,0]:='
Josephine';
stringgrid1.cells[11,0]:='
Julia E.';
stringgrid1.cells[12,0]:='
Julia M.';
stringgrid1.cells[13,0]:='
Kerrin';
stringgrid1.cells[14,0]:='
Kim';
stringgrid1.cells[15,0]:='
Kira B.';
stringgrid1.cells[16,0]:='
Kira K.';
stringgrid1.cells[17,0]:='
Kristina';
stringgrid1.cells[18,0]:='
Liv';
stringgrid1.cells[19,0]:='
Luise';
stringgrid1.cells[20,0]:='
Marie';
stringgrid1.cells[21,0]:='
Miriam';
stringgrid1.cells[22,0]:='
Mona';
stringgrid1.cells[23,0]:='
Natascha';
stringgrid1.cells[24,0]:='
Pia';
stringgrid1.cells[25,0]:='
Sarah E.';
stringgrid1.cells[26,0]:='
Sarah H.';
stringgrid1.cells[27,0]:='
Sarah T.';
stringgrid1.cells[28,0]:='
Sina G.';
stringgrid1.cells[29,0]:='
Sina N.';
stringgrid1.cells[30,0]:='
Stefanie';
stringgrid1.cells[31,0]:='
Svea';
stringgrid1.cells[32,0]:='
Svenja';
stringgrid1.cells[33,0]:='
Tjorven';
stringgrid1.cells[34,0]:='
Vanessa';
stringgrid1.cells[35,0]:='
Yasmin';
stringgrid2.cells[0,1]:='
Abschreiber/in';
stringgrid2.cells[0,2]:='
Angeber/in';
stringgrid2.cells[0,3]:='
Antisportler/in';
stringgrid2.cells[0,4]:='
Arroganteste/r';
stringgrid2.cells[0,5]:='
Besserwisser/in';
stringgrid2.cells[0,6]:='
beste Frisur';
stringgrid2.cells[0,7]:='
beste/r Schauspieler/in';
stringgrid2.cells[0,8]:='
dümmste Fragen';
stringgrid2.cells[0,9]:='
Bestgelaunteste/r';
stringgrid2.cells[0,10]:='
Clown';
stringgrid2.cells[0,11]:='
Rätsel';
stringgrid2.cells[0,12]:='
Eitelste/r';
stringgrid2.cells[0,13]:='
Millionär/in';
stringgrid2.cells[0,14]:='
Vater/Mutter';
stringgrid2.cells[0,15]:='
Extrovertierteste/r';
stringgrid2.cells[0,16]:='
Faulste/r';
stringgrid2.cells[0,17]:='
Freak';
stringgrid2.cells[0,18]:='
Geizigste/r';
stringgrid2.cells[0,19]:='
Höflichste/r';
stringgrid2.cells[0,20]:='
Infantilste/r';
stringgrid2.cells[0,21]:='
Intelligenzbestie';
stringgrid2.cells[0,22]:='
Interessanteste/r';
stringgrid2.cells[0,23]:='
Lache';
stringgrid2.cells[0,24]:='
Kreativste/r';
stringgrid2.cells[0,25]:='
Lehrerliebling';
stringgrid2.cells[0,26]:='
Lustigste/r';
stringgrid2.cells[0,27]:='
Macho/Tussi';
stringgrid2.cells[0,28]:='
Mr/Ms Fashion';
stringgrid2.cells[0,29]:='
Mr/Ms Max Planck';
stringgrid2.cells[0,30]:='
Mitläufer/in';
stringgrid2.cells[0,31]:='
möchtegern-witzig';
stringgrid2.cells[0,32]:='
Morgenmuffel';
stringgrid2.cells[0,33]:='
nervigste Stimme';
stringgrid2.cells[0,34]:='
Netteste/r';
stringgrid2.cells[0,35]:='
Nikotinopfer';
stringgrid2.cells[0,36]:='
Öko';
stringgrid2.cells[0,37]:='
One-Night';
stringgrid2.cells[0,38]:='
Partyking';
stringgrid2.cells[0,39]:='
Partykotzer/in';
stringgrid2.cells[0,40]:='
politische Ansicht';
stringgrid2.cells[0,41]:='
Schleimer/in';
stringgrid2.cells[0,42]:='
Schnacker/in';
stringgrid2.cells[0,43]:='
Schnapsdrossel';
stringgrid2.cells[0,44]:='
Schnorrer/in';
stringgrid2.cells[0,45]:='
Schönheit';
stringgrid2.cells[0,46]:='
schönstes Lächeln';
stringgrid2.cells[0,47]:='
Schwänzer/in';
stringgrid2.cells[0,48]:='
Sozialste/r';
stringgrid2.cells[0,49]:='
Sportlichste/r';
stringgrid2.cells[0,50]:='
Stimmungskanone';
stringgrid2.cells[0,51]:='
Tollpatsch';
stringgrid2.cells[0,52]:='
Body';
stringgrid2.cells[0,53]:='
Schwiegertraum';
stringgrid2.cells[0,54]:='
Unauffälligste/r';
stringgrid2.cells[0,55]:='
Unselbsständigste/r';
stringgrid2.cells[0,56]:='
Verkehrsrowdy';
stringgrid2.cells[0,57]:='
Verplanteste/r';
stringgrid2.cells[0,58]:='
Verwöhnteste/r';
stringgrid2.cells[0,59]:='
Weichei';
stringgrid2.cells[0,60]:='
Wichtigtuer';
stringgrid2.cells[0,61]:='
Wichtigtuer/in';
stringgrid2.cells[0,62]:='
Zicke';
stringgrid2.cells[0,63]:='
Zuspätkommer/in';
stringgrid2.cells[0,64]:='
Zuverlässigste/r';
stringgrid2.cells[1,0]:='
Alexander';
stringgrid2.cells[2,0]:='
Anil';
stringgrid2.cells[3,0]:='
Arved';
stringgrid2.cells[4,0]:='
Bennet';
stringgrid2.cells[5,0]:='
Daniel W.';
stringgrid2.cells[6,0]:='
Eike';
stringgrid2.cells[7,0]:='
Felix J.';
stringgrid2.cells[8,0]:='
Felix S.';
stringgrid2.cells[9,0]:='
Ferdinand';
stringgrid2.cells[10,0]:='
Florian';
stringgrid2.cells[11,0]:='
Ha';
stringgrid2.cells[12,0]:='
Jan';
stringgrid2.cells[13,0]:='
Jannik F.';
stringgrid2.cells[14,0]:='
Jaseper';
stringgrid2.cells[15,0]:='
Jendrik';
stringgrid2.cells[16,0]:='
Jonas';
stringgrid2.cells[17,0]:='
Konrad';
stringgrid2.cells[18,0]:='
Leewe';
stringgrid2.cells[19,0]:='
Leif';
stringgrid2.cells[20,0]:='
Lorenz';
stringgrid2.cells[21,0]:='
Max K.';
stringgrid2.cells[22,0]:='
Max S.';
stringgrid2.cells[23,0]:='
Michel';
stringgrid2.cells[24,0]:='
Nico';
stringgrid2.cells[25,0]:='
Niklas F.';
stringgrid2.cells[26,0]:='
Niklas H.';
stringgrid2.cells[27,0]:='
Phil';
stringgrid2.cells[28,0]:='
Philip R.';
stringgrid2.cells[29,0]:='
Philip S.';
stringgrid2.cells[30,0]:='
Sergej';
stringgrid2.cells[31,0]:='
Simon';
stringgrid2.cells[32,0]:='
Sören';
stringgrid2.cells[33,0]:='
Steffen';
stringgrid2.cells[34,0]:='
Stephan';
stringgrid2.cells[35,0]:='
Till';
stringgrid2.cells[36,0]:='
Tilmann';
stringgrid2.cells[37,0]:='
Torben';
stringgrid2.cells[38,0]:='
Yannik M.';
stringgrid2.cells[39,0]:='
Yannick Z.';
end;
procedure TForm1.StringGrid1Click(Sender: TObject);
var
xzelle, yzelle :integer;
begin
xzelle:=StringGrid1.Col;
yzelle:=StringGrid1.Row;
stringgrid1.cells[xzelle,yzelle]:=inttostr(strtoint(stringgrid1.cells[xzelle,yzelle])+1);
end;
procedure TForm1.StringGrid2Click(Sender: TObject);
var
xzelle, yzelle :integer;
begin
xzelle:=StringGrid2.Col;
yzelle:=StringGrid2.Row;
stringgrid2.cells[xzelle,yzelle]:=inttostr(strtoint(stringgrid2.cells[xzelle,yzelle])+1);
end;
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
xzelle, yzelle :integer;
begin
if Shift = [ssRight]
then // nur rechte maustaste
begin
xzelle:=StringGrid1.Col;
yzelle:=StringGrid1.Row;
stringgrid1.cells[xzelle,yzelle]:=inttostr(strtoint(stringgrid1.cells[xzelle,yzelle])-1);
end;
// if Shift in [ssRight]
end;
procedure TForm1.StringGrid2MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
xzelle, yzelle :integer;
begin
if Shift = [ssRight]
then // nur rechte maustaste
begin
xzelle:=StringGrid2.Col;
yzelle:=StringGrid2.Row;
stringgrid2.cells[xzelle,yzelle]:=inttostr(strtoint(stringgrid2.cells[xzelle,yzelle])-1);
end;
// if Shift in [ssRight]
end;
Procedure Mischsortieren1 (links,rechts: Integer);
var Endelinks, Anfangrechts:Integer;
Procedure Mischen1(I, J: integer);
var
Z, K: integer;
begin
if I < J
then
begin
Mischvergleich:=Mischvergleich+1;
if Liste[I] <= Liste[J]
then
begin
Mischvergleich:=Mischvergleich+1;
Mischen1(I + 1, J)
end
else
begin
Z := Liste[J];
For K := J - 1
downto I
do
begin
Liste[K + 1] := Liste[K];
mischtausch:=mischtausch+1;
end;
Liste[I] := Z;
mischtausch:=mischtausch+1;
if J < rechts
then
begin
Mischvergleich:=Mischvergleich+1;
Mischen1(I + 1, J + 1);
end;
end;
end;
end;
begin
Endelinks:=trunc((links+rechts)/2);
Anfangrechts:=Endelinks+1;
if links<Endelinks
then
begin
Mischvergleich:=Mischvergleich+1;
Mischsortieren1(links,Endelinks);
end;
if Anfangrechts<rechts
then
begin
Mischvergleich:=Mischvergleich+1;
Mischsortieren1(Anfangrechts,rechts);
end;
Mischen1(links,Anfangrechts);
end;
procedure quicksort(erstes, letztes: integer);
{Sortieren mittels Quicksort}
var linker_merker, rechter_merker : integer;
procedure zerlege (
var links, rechts: integer);
var pivot: integer;
procedure tausche (
var x, y: integer);
var hilf: integer;
begin
hilf := x; x := y; y := hilf;
vertausche := vertausche + 1;
end;
{of vertausche}
begin {zerlege}
pivot := ListeQuick[(links + rechts)
DIV 2];
repeat
while ListeQuick[links] < pivot
do begin
links := links + 1;
vergleiche := vergleiche + 1;
end;
while ListeQuick[rechts] > pivot
do begin
rechts := rechts - 1;
vergleiche := vergleiche + 1;
end;
if links <= rechts
then begin
tausche (ListeQuick[links], ListeQuick[rechts]);
links := links + 1; rechts := rechts - 1;
vergleiche := vergleiche + 1;
end;
until links > rechts;
end;
{of zerlege}
begin {quicksort}
linker_merker := erstes; rechter_merker := letztes;
zerlege (linker_merker, rechter_merker);
if erstes < rechter_merker
then
quicksort (erstes, rechter_merker);
{Rekursiver Selbstaufruf!}
if linker_merker < letztes
then
quicksort (linker_merker, letztes);
{Rekursiver Selbstaufruf!}
end;
{of quicksort}
procedure TForm1.Button1Click(Sender: TObject);
var q: integer;
begin
For q:= 1
to 35
do
begin
For l:= 1
to 64
do
begin
Liste[l]:=strtoint(stringgrid1.cells[q+1,l]);
end;
Mischsortieren1(1,64);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var q: integer;
begin
For q:= 1
to 35
do
begin
For l:= 1
to 64
do
begin
Liste[l]:=strtoint(stringgrid2.cells[q+1,l]);
end;
Mischsortieren1(1,64);
end;
end;
end.