Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi bogosort (https://www.delphipraxis.net/44112-bogosort.html)

tripleeye 13. Apr 2005 20:04


bogosort
 
hallo,
ich bin gerade dabei bogosort in einer kleinen konsolenanwendung zu implementieren.

schwierigkeiten bereitet mir dabei das durchwürfeln des integer-arrays, da meine methode zwei zufällig gewählte elemente zu vertauschen und das so oft, wie das array lang ist, keine wirklich zufälligen ergebnisse liefert.

dies zeigt sich dadurch, dass selbst bei 3 elementen und 10 ausgaben des durchgewürfelten arrays entweder nur 3 unterschiedliche kombinationen liefert, die sich kontinuierlich wiederholen, oder 10 identische ausgaben.

abhängig ist das anscheinend von der position des randomize.

bitte gebt mir einen vorschlag, wie ich meinen code "zufälliger" hinbekomme, oder auch völlig neue ideen, aber bitte keine antworten, dass bogosort unnütz und langsam ist. das weiß ich auch, aber nachdem ich die üblichen sortieralgorithmen umgesetzt hatte wollte ich auch mal was spaßiges ausprobieren.

Delphi-Quellcode:
    procedure wuerfeln(var feld: tfeld; n: integer);
    var helpfeld: tfeld;
        i, j: integer;
        zeiger1, zeiger2: integer;
    begin

        for i:=1 to 2 do
          begin
           if random(100) > 70 then randomize;
           zeiger1:= random(n) + 1;
           zeiger2:= random(n) + 1;
            vertauschen( Feld[zeiger1], Feld[zeiger2]);
          end;
    end;
schonmal danke für antworten

Binärbaum 14. Apr 2005 09:34

Re: bogosort
 
Es würde reichen, wenn du randomize nur einmal am Anfang der Prozedur Wuerfeln aufrufst.
Bei deinem jetzigen Code, wird Randomize möglicherweise mehrmals hintereinander (in kurzen Abständen) aufgerufen, und das ist nicht gut.
Übrigens: bei 3 feldern gibt es nur 3!= 3*2*1 =6 mögliche Anordnungen.

MfG
Binärbaum

tripleeye 14. Apr 2005 16:21

Re: bogosort
 
Genau das hab ich auch schon versucht. mit dem ergebnis, dass immer wieder das selbe feld ausgegeben wird.

das es bei 3 zahlen 3!=3*2*1= 6 möglichkeiten gibt, weiß ich :lol: , trotzdem danke.

fwsp 14. Apr 2005 18:54

Re: bogosort
 
ist bogosort nicht ziemlich rechenintensiv???

Binärbaum 14. Apr 2005 19:35

Re: bogosort
 
Zitat:

Zitat von fwsp
ist bogosort nicht ziemlich rechenintensiv???

Wer weiß? :mrgreen:
Fest steht, dass es bessere Sortieralgorithmen gibt, aber darum ging es tripleeye ja nicht.

MfG
Binärbaum

fwsp 14. Apr 2005 19:39

Re: bogosort
 
ich glaube alle anwesenden hier wissen, das es bessere gibt.
ich würde bucketsort emphelen...

Binärbaum 14. Apr 2005 19:43

Re: bogosort
 
[OT]
Zitat:

Zitat von fwsp
ich glaube alle anwesenden hier wissen, das es bessere gibt.
ich würde bucketsort emphelen...

Und ich Shellsort oder Quicksort.
Aber wie bereits gesagt: darum geht es hier nicht.
[/OT]


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz