AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

4 dimensionalen Array sortieren

Ein Thema von Coder · begonnen am 20. Jun 2006 · letzter Beitrag vom 23. Jun 2006
Antwort Antwort
Seite 2 von 2     12   
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#11

Re: 4 dimensionalen Array sortieren

  Alt 21. Jun 2006, 10:28
Zitat von negaH:
ich meinte sehr wohl Stabilität und bezog mich damit auf deine Aussage. Bei Quicksort ist es enorm wichtig das die Comparefunction (Vergleichoperation) immer eine eindeutige Sortierung erzeugt. Ist dies nicht der Fall so wird zb. die QuickSort Implementierung in der VCL (TList zb.) in einer Endloss-Schleife verenden.
Die eindeutige Vergleichoperation bezieht sich aber nur darauf das zb. nicht A > B und A <= B gleichzeitig gelten darf, oder zb. A > B und B > C und C > A.
QuickSort ist, je nach Implementierung, im Gegensatz zu anderen Verfahren, ziemlich anfällig für solche Kontradiktions in der Comparefunction, eben in-stabil !
Danm hab ich dich entweder falsch verstanden oder ne andere Vorstellung von dem Begriff "Stabilität".
*nochmal in die Wikipedia guckt* http://de.wikipedia.org/wiki/Stabiles_Sortierverfahren
Jo, genau so, wie ichs im Kopf hatte:
Die Reihenfolge gleichwertiger Elemente wird nicht verändert. Das ist bei QuickSort aber nicht der Fall(im Normalfall jedenfalls). [wie gesagt, ich hatte die Frage falsch verstenden/nicht aufnmerksam genug gelesen]

Du bezieht Stabilität aber auf das Funktionieren des Algorithmus. Ohne eindeutige Vergleichsoperation ist (vergtleichsbasiertes) Sortieren IMHO unmöglich ==> Fehler bei der Implementierung der Compare-Funktion. QuickSort als Algo funktioniert aber trotzdem.

Oder hab ich dich falsch verstanden?

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#12

Re: 4 dimensionalen Array sortieren

  Alt 21. Jun 2006, 11:03
Nöö, ist absolut korrekt so
Ich erwähnte dies nur weil ich denke das viele Programmierer so arbeiten wie ich.
Sie öffnen Classes.pas, kopieren sich die QuickSort Sourcen von TList, ändern sie an ihre Bedürfnisse, bauen ihre Compare Callbacks und wenn diese nicht saubere/stabile Vergleichsoperationen durchführt, wundern sie sich dann das ihr QuickSort eine Endloss-Sortierung durchführt. Sprich: ich wollte ein bischen meiner Erfahrungen mitgeben

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
206 Beiträge
 
Delphi 3 Professional
 
#13

Re: 4 dimensionalen Array sortieren

  Alt 22. Jun 2006, 17:24
habe ich nun auch versucht vom quicksort auf den Mergsort zu wechseln, da dieser stabiler ist und auch zur Sortierung von verketteten Listen geeignet.

http://de.wikipedia.org/wiki/MergeSort#Pascal

Allerdings scheint mein Programm da einen Fehler zu haben.


http://rapidshare.de/files/23793480/merges.zip.html (5 KB)

Fehler:
Im Projekt Mergesort.exe ist eine Exception der Klasse EConvertError aufgetreten. Meldung: ''' ist kein gültiger Integerwert'. Prozeß wurde angehalten. Fortfahren mit Einzelschritt oder Start. in form1.hilf[x] := StrToInt(form1.Stringgrid1.cells[x,0]); //dynamische Array

x ist in dem Falle Null bzw. = 0.
weil der Algo sich schon ein paar mal aufgerufen hat.


kann sich jemand erklären, ob warum das so ist?
bzw. hat auch jemand ne Idee, wie ich die Zeilen in den Records damit sortiert bekomme (wenn Mergesort funktioniert)

Also ich bin momentan ratlos.
ICQ: 204141443
Delphi 3 Professional, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#14

Re: 4 dimensionalen Array sortieren

  Alt 22. Jun 2006, 20:04
Zitat von Coder:
kann sich jemand erklären, ob warum das so ist?
Lies doch einfach die Fehlermeldung. An der ensprechenden Sstelle im StringGrid steht keine Zahl...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
206 Beiträge
 
Delphi 3 Professional
 
#15

Re: 4 dimensionalen Array sortieren

  Alt 22. Jun 2006, 20:15
ok, gedacht hab ich mir das auch ...
aber wie kann das sein?

ich mein.... der algo ist doch so übernommen.
und es gibt doch maximal 10 Einträge.
wie kommt man dann auf Null?

Was kann ich denn abändern, damit das Ding durchläuft?
ICQ: 204141443
Delphi 3 Professional, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#16

Re: 4 dimensionalen Array sortieren

  Alt 22. Jun 2006, 22:30
Sorry, hab momentan meine Glasgugel verlegt. Mir fehlen n paar Infos:
- dein genauer Code
- der Inhalt deines StringGrids
- ...

Ach und noch ne Frage:
Hast du schon mal den Debugger bemüht? Was sagt der denn?

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von Coder
Coder

Registriert seit: 27. Feb 2004
Ort: Bochum
206 Beiträge
 
Delphi 3 Professional
 
#17

Re: 4 dimensionalen Array sortieren

  Alt 22. Jun 2006, 23:11
Code:
Sorry, hab momentan meine Glasgugel verlegt. Mir fehlen n paar Infos:
- dein genauer Code
http://rapidshare.de/files/23793480/merges.zip.html
(hatte das schon umseitig gepostet)
Code:
- der Inhalt deines StringGrids
- ...
wie meinste das?
Das is anfangs leer.
Code:
Ach und noch ne Frage:
Hast du schon mal den Debugger bemüht? Was sagt der denn?
ja, aber nix ungwöhnliches Entdeckt
also bin auch teilw mit F7 durchgesteppt.
ICQ: 204141443
Delphi 3 Professional, Intel 2x 2,4Ghz, 3 GB-Graka, Sound-onBrd, --
außerdem D2S, D3Pro, D4S, D5S, D6S, D7S + Indy, Lazarus, VB5Std, VC++5Pro, Tasm4+5 - was braucht man mehr?
-
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#18

Re: 4 dimensionalen Array sortieren

  Alt 23. Jun 2006, 21:35
Zitat von Coder:
Code:
Sorry, hab momentan meine Glasgugel verlegt. Mir fehlen n paar Infos:
- dein genauer Code
http://rapidshare.de/files/23793480/merges.zip.html
(hatte das schon umseitig gepostet)
Wens nicht so viel ist, kannst du sowas auch in den Beitrag schreiben. Die andere - komfortablere Möglichkeit als irgendwelche Freehoster - ist die Datei einfach an den Post anzuhängen...

Zitat:
Code:
- der Inhalt deines StringGrids
- ...
wie meinste das?
Das is anfangs leer.
Und ganau das ist das Problem. Was willst du sortieren, wenn du nix hast?

Zitat:
Code:
Ach und noch ne Frage:
Hast du schon mal den Debugger bemüht? Was sagt der denn?
ja, aber nix ungwöhnliches Entdeckt
also bin auch teilw mit F7 durchgesteppt.
Beim durchsteppen(und auch schon beim Angucken vom Code) müsste dir aufgefallen sein, dass du versuchst auf ne leere Zelle zuzugreifen. Und genau dabei krachts. Was für ne Zahl is bitte n Leerstring? Genau das versucht dir die Exception mitzuteilen...

mfg

Cheristian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz