Delphi-PRAXiS
Seite 5 von 7   « Erste     345 67      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   FreePascal Bubblesort Problem (https://www.delphipraxis.net/186830-bubblesort-problem.html)

EWeiss 8. Mär 2018 14:07

AW: Bubblesort Problem
 
Zitat:

Zitat von himitsu (Beitrag 1395573)
Zitat:

Zitat von EWeiss (Beitrag 1395570)
Zitat:

Wie dein Vergleich arbeitet, das musst du definieren und auch "richtig" implementieren
Siehe den Codeabschnitt.

Welchen?

Antwort #6 ... joar, stimmt soweit.



Delphi-Quellcode:
for i := 0 to High(numbers)-1 do
  for k := i+1 to High(numbers) do
    if numbers[i] > numbers[k] then
      Tausche(i, k)
Das
Delphi-Quellcode:
if ... then
musst du natürlich noch richtig implementieren, denn was man hier aus dem Wirrwarr rauslesen kann, ist dein Vergleich ein scheinbar bissl "anders".



Die Generics gibt es schon seit 2009 und 2010 ging es dann "besser".
k.A. ob Delphi-Referenz durchsuchenGenerics.Collections.TArray.Sort bei dir schon verfügbar ist.
fand es nicht, aber in der Hilfe fehlte damals auch noch Vieles http://docwiki.embarcadero.com/RADSt...ulltext=Search
Aber auch hier, musst du den Vergleich anpassen.

Nein ich meine den Beitrag in dem die Arrays vorbereitet werden.

gruss

TiGü 8. Mär 2018 14:27

AW: Bubblesort Problem
 
Zitat:

Zitat von EWeiss (Beitrag 1395575)
Zitat:

Zitat von TiGü (Beitrag 1395571)
Hast du denn mal die Variablen Angle, AnglePi und zorder[K] geloggt?

Nein.
Was mit jetzt ein Log da bringen würde entschließt sich mir.
Aber wie gesagt bin bereit jemanden das Projekt zu schocken damit er es mal testen kann.
Was nicht bedeuten soll das er meine Arbeit tun soll ;)

Du würdest sehen, ob die errechneten Werte so stimmen oder ob da schon VOR der Sortierung etwas faul ist. :idea:

hoika 8. Mär 2018 19:55

AW: Bubblesort Problem
 
Hallo,
Zitat:

Nach meinem Verständnis ist es richtig implementiert.
Wo liegt denn dann der Fehler?
Das musst Du doch selber schnell herausfinden.

Für mich ist Deine Berechnung jedenfalls zu kompliziert...

Delphi-Laie 8. Mär 2018 20:03

AW: Bubblesort Problem
 
Zitat:

Zitat von EWeiss (Beitrag 1395566)
Zitat:

Ist die gewünschte Reihenfolge erstmal klar, kann man nämlich (nahezu) jeden Sortieralgorithmus auf jedes Sortierproblem loslassen.
Leicht dahin gesagt..

Meine Reihenfolge wird in dem Quelltext definiert.

Es wäre für einen Außsenstehenden - und vermutlich auch für Dich - transparenter, die diesem vergleichsgbasierten Sortieralgorithmus namens Bubblesort zugrundeliegende Vergleichsfunktionalität in eine extra Funktion auszulagern, die drei Ausgabewerte annehmen kann, die dem kleiner, gleich oder größer entsprechen.

Oder sind die Relationen der zu sortierenden Objekte intransitiv?

EWeiss 8. Mär 2018 20:49

AW: Bubblesort Problem
 
Zitat:

Zitat von hoika (Beitrag 1395607)
Hallo,
Zitat:

Nach meinem Verständnis ist es richtig implementiert.
Wo liegt denn dann der Fehler?
Das musst Du doch selber schnell herausfinden.

Für mich ist Deine Berechnung jedenfalls zu kompliziert...

Ja wird mir nichts anderes übrigbleiben. (vielleicht mit Quicksort mal versuchen)
Danke.

gruss

Delphi-Laie 8. Mär 2018 21:21

AW: Bubblesort Problem
 
Zitat:

Zitat von EWeiss (Beitrag 1395610)
Ja wird mir nichts anderes übrigbleiben. (vielleicht mit Quicksort mal versuchen)

Wo Bubblesort nicht (oder nicht richtig) funktioniert, wird Quicksort kaum besser sein (ganz im Gegensatz, es ist komplizierter und damit fehleranfälliger), denn das Problem liegt wohl nicht an einem fehlerhaften Bubblesort.

EWeiss 8. Mär 2018 22:22

AW: Bubblesort Problem
 
Zitat:

Zitat von Delphi-Laie (Beitrag 1395611)
Zitat:

Zitat von EWeiss (Beitrag 1395610)
Zitat:

Zitat von hoika (Beitrag 1395607)
Ja wird mir nichts anderes übrigbleiben. (vielleicht mit Quicksort mal versuchen).

.

Wo Bubblesort nicht (oder nicht richtig) funktioniert, wird Quicksort kaum besser sein (ganz im Gegensatz, es ist komplizierter und damit fehleranfälliger), denn das Problem liegt wohl nicht an einem fehlerhaften Bubblesort.

Auch wenn du recht haben magst werde ich es destotrotz versuchen.

gruss

freimatz 9. Mär 2018 06:59

AW: Bubblesort Problem
 
Zitat:

Zitat von Delphi-Laie (Beitrag 1395609)
Oder sind die Relationen der zu sortierenden Objekte intransitiv?

Was meinst Du damit? Bitte erkläre das Wort intransitiv in dem Zusammenhang oder erkläre das was du sagen willst ohne das Wort. Danke.

hoika 9. Mär 2018 07:01

AW: Bubblesort Problem
 
Hallo,
da muss ich mal Delphi-Laie Recht geben. ausnahmsweise ;)

Was hat denn die Auswahl von Bubble-Sort oder Quick-Sort mit dem Problem zu tun?
Das Problem ist der Tausch-Algorithmus, da musst Du ansetzen,
z.B. mit ein paar Unit-Tests.

Neutral General 9. Mär 2018 08:24

AW: Bubblesort Problem
 
Zitat:

Zitat von EWeiss (Beitrag 1395614)
Zitat:

Zitat von Delphi-Laie (Beitrag 1395611)
Zitat:

Zitat von EWeiss (Beitrag 1395610)
Zitat:

Zitat von hoika (Beitrag 1395607)
Ja wird mir nichts anderes übrigbleiben. (vielleicht mit Quicksort mal versuchen).

.

Wo Bubblesort nicht (oder nicht richtig) funktioniert, wird Quicksort kaum besser sein (ganz im Gegensatz, es ist komplizierter und damit fehleranfälliger), denn das Problem liegt wohl nicht an einem fehlerhaften Bubblesort.

Auch wenn du recht haben magst werde ich es destotrotz versuchen.

Nochmal ein Versuch das zu erklären:
Das Sortieren besteht quasi aus 2 Teilen:

1) Den Algorithmus (Bubblesort, Quicksort, Mergesort, ...)
Jeder dieser Algorithmen kann zuverlässig in jeder Situation Zahlen sortieren :!:
2) Der Teil beim Sortieren wo zwei Elemente verglichen werden und entschieden werden muss welcher der beiden Elemente größer/kleiner/gleich ist.
Dieser Vergleich von zwei Elementen ist komplett UNABHÄNGIG vom gewählten Algorithmus und bestimmt am Ende in welcher Reihenfolge die Zahlen sortiert werden.

Dein Problem liegt bei 2).
Wie ich und andere schon mehrmals gesagt haben musst du dir bewusst machen in welcher Reihenfolge du deine Zahlen haben willst.
Wenn du da keinen 100%igen Plan wird das nie was und du kannst Sortieralgorithmen implementieren bis du schwarz wirst.
Sobald du weißt in welcher Reihenfolge du deine Zahlen haben willst musst du dir für 2) eine Function überlegen die zwei Zahlen anhand deiner Kriterien vergleicht => Fertig


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:53 Uhr.
Seite 5 von 7   « Erste     345 67      

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