Wenn wir es nicht schaffen, schafft es Murphy bestimmt.theo hat geschrieben: Schaffst du das?
Listbox.Items zufällig mischen
-
mse
- Beiträge: 2013
- Registriert: Do 16. Okt 2008, 10:22
- OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
- CPU-Target: x86,x64,ARM
Re: Listbox.Items zufällig mischen
Re: Listbox.Items zufällig mischen
Den hab ich schon gerufen, der kommt aber nicht aus der Höhle...mse hat geschrieben: Wenn wir es nicht schaffen, schafft es Murphy bestimmt.
program MurphyKommRaus;
Code: Alles auswählen
function RandomSort(List: TStringList; Index1, Index2: Integer): Integer;
begin
Result := -1 + Random(3);
end;
procedure TForm1.Button1Click(Sender: TObject);
var sl:TStringList;
i:integer;
cnt:QWord;
s:String;
begin
i:=0;
cnt:=0;
Randomize;
sl:=TStringList.create;
// for i:=65 to 90 do s:=s+chr(i)+LineEnding;
for i:=65 to 68 do s:=s+chr(i)+LineEnding;
sl.text:=s;
while not (Application.Terminated) do
begin
sl.CustomSort(@RandomSort);
if (cnt=High(Qword)) then break;
inc(cnt);
if cnt mod 100000 = 0 then
begin
Caption:=inttostr(cnt);
ListBox1.Items.Assign(sl);
Application.Processmessages;
end;
end;
sl.free;
end;- af0815
- Lazarusforum e. V.
- Beiträge: 6983
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Listbox.Items zufällig mischen
Wenn du eine 'schlechte' Vergleichsfunktion hast, dann ist die ja deterministisch schlecht und somit wird die Abbruchbedingung für den QS nicht schlagend - klassicher hänger
(kenn ich zur genüge - bin Spezialist dafür)
Das schöne bei Theos Version, ist, das durch den Zufallsgenerator auch diese Abbruchsbedinung früher oder später erfüllt wird, darum gibt es IMHO kein Problem mit hängern.
Übrigends kann man auch 'Murphys Gesetz' auf 'Murphys Gesetze' anwenden
BTW: Die Idee mit dem 'unsort' ist schon fast Patentverdächtig.
Das schöne bei Theos Version, ist, das durch den Zufallsgenerator auch diese Abbruchsbedinung früher oder später erfüllt wird, darum gibt es IMHO kein Problem mit hängern.
Übrigends kann man auch 'Murphys Gesetz' auf 'Murphys Gesetze' anwenden
BTW: Die Idee mit dem 'unsort' ist schon fast Patentverdächtig.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).