ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
2508
2508
EMPFEHLEN
-
12.12.02 20:14 #1
- Registriert seit
- Apr 2001
- Ort
- Hamburg
- Beiträge
- 1.309
Moin Freunde des logischen Denkens!
Musste gerade für ein Programm in der Uni den Bubblesort Algorithmus etwas modifizieren. Mein Problem ist, dass er funktioniert. Das Array wird sortiert, nur leider zu schnell. Hab noch ne Schleife drum, damit ich für Zeitmessungen ein vernünftiges Ergebnis in Millisekunden bekomme. Vielleicht könnte ihr mal gucken, wo irgendwo was unstimmig ist.
Das Ganze flutscht unter TP6.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
[COLOR=#000000][B]Procedure[/B][/COLOR] BubbleSort( Elemente : Word; KopieArray : TArray; [COLOR=#000000][B]var[/B][/COLOR] ErgebnisArray : TArray); [COLOR=#000000][B]Var[/B][/COLOR] Marke, i, MarkeTemp,h : Word; MarkeFlag : Boolean; SArray : TArray; [COLOR=#000000][B]Begin[/B][/COLOR] [COLOR=#000000][B]for[/B][/COLOR] h := 1 [COLOR=#000000][B]to[/B][/COLOR] Durchlauf [COLOR=#000000][B]do[/B][/COLOR] SArray := KopieArray; [COLOR=#000000][B]Begin[/B][/COLOR][Color=#ff0000]<-[/color] Marke := 1; [COLOR=#000000][B]repeat[/B][/COLOR] MarkeFlag := True; i := Elemente; [COLOR=#000000][B]while[/B][/COLOR] i > Marke [COLOR=#000000][B]do[/B][/COLOR] [COLOR=#000000][B]Begin[/B][/COLOR] [COLOR=#000000][B]if[/B][/COLOR] SArray[i-1] > SArray[i] [COLOR=#000000][B]then[/B][/COLOR] [COLOR=#000000][B]Begin[/B][/COLOR] MarkeTemp := SArray[i]; SArray[i] := SArray[i-1]; SArray[i-1] := MarkeTemp; MarkeFlag := False; MarkeTemp := i; [COLOR=#000000][B]End[/B][/COLOR]; dec(i); [COLOR=#000000][B]End[/B][/COLOR]; Marke := MarkeTemp; [COLOR=#000000][B]until[/B][/COLOR] MarkeFlag; [COLOR=#000000][B]End[/B][/COLOR]; ErgebnisArray := SArray; [COLOR=#000000][B]End[/B][/COLOR];
Elemente = Elemente im Array
Durchlauf = Schleifendurchläufe
KopieArray = Bei sortiertem Array, wird wieder das unsortierte Array genommen.
Danke schonmal im vorraus.Geändert von Patrick Kamin (12.12.02 um 21:49 Uhr)
--
GNU/Linux - Weil man echte Freunde nicht kaufen kann
-
12.12.02 20:24 #2
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Was heisst genau "zu schnell"? Wenn Du das alles etwas rauszögern willst, kannst Du doch überall noch irgendwas passendes einbauen (Sleep, blinde Schleifen, ...). Das ist dann zwar nicht mehr ganz im Sinne des Erfinders, aber sollte helfen.
Ansonsten mach doch einfach das Array grösser, dann dauert das ganze logischerweise auch etwas länger.
Nachtrag:
Ich weiss nicht, ob es das bei Turbo Pascal auch schon gibt, aber evtl. hilft Dir ein Timer weiter. Möglicherweise kannst Du sowas irgendwie per Windows API hinbiegen.
-
12.12.02 20:44 #3
- Registriert seit
- Apr 2001
- Ort
- Hamburg
- Beiträge
- 1.309
Jo ichVielleicht sieht noch jemand was.
Da verrutscht man mal mit einem Begin und denkt schon, man hat nen neuen superschnellen Sortieralgorithmus gefunden.
Um den ganzen Vorgang etwas heraus zuzögern, habe ich ja schon ne Schleife um den Algorithmus gepackt, damit man die Geschwindigkeit messen kann. Das Problem ist, wenn ich die Wiederholung auf 2000 stelle, dann brauchen andere Soriteralgorithmen wie Shakersort etc. ca 15 Sekunden, aber Bubblesort bleibt unter einer Sekunde.
Und ich will einfach keinen Fehler finden, hab schon stundenlang auf den Quellcode geguckt und es kann nur an der Prozedur liegen.
Also es geht mir nicht um die künstliche Verzögerung.Geändert von Patrick Kamin (12.12.02 um 21:48 Uhr)
--
GNU/Linux - Weil man echte Freunde nicht kaufen kann
Ähnliche Themen
-
Bubblesort-Ausgabe
Von barosch im Forum Java GrundlagenAntworten: 3Letzter Beitrag: 25.10.08, 13:26 -
Suche Geschichte von Bubblesort..
Von KleinesNadine im Forum JavaAntworten: 3Letzter Beitrag: 15.09.07, 12:43 -
Wann Rekursion anwenden? (z.B. Bubblesort)
Von FireFlow im Forum C/C++Antworten: 5Letzter Beitrag: 03.05.05, 01:40 -
Frage zu einem Bubblesort
Von glitterangel im Forum Delphi, Kylix, PascalAntworten: 6Letzter Beitrag: 10.04.05, 20:14 -
Bubblesort...wie?
Von tremere im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 10.01.05, 12:47





Zitieren
Login





