Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 11.05.2006, 22:13 Titel: VISISORT.BAS aus der MonsterFAQ 2 |
|
|
Hi,
das Programm VISISORT.BAS aus der MonsterFAQ 2 ist in QBasic geschrieben und zeigt die Arbeitsweise einiger Sortieralgorithmen auch visuell an.
Mit einigen Änderungen läuft es auch in FB (natürlich wesentlich schneller ).
Erstaunlich schnell läuft das Rapidsort, ein sehr ungewöhnlicher Sortieralgorithmus, den ich vorher nicht kannte.
Für eigene Tests, hier ist die BAS-Datei für FB:
EDIT/ http://nopaste.freebasic.de/?view=357
Gruß Volta _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Zuletzt bearbeitet von volta am 12.05.2006, 22:20, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 12.05.2006, 19:26 Titel: |
|
|
Klasse, ein beeindruckender Test.
Wie zu erwarten ist BubbleSort wirklich der langsamste Algorithmus..
Mein Favorit QuickSort wird leider nicht rekursiv ausgeführt
QuickSort schlägt sich aber tapfer und wird nur von QuickSort2
überholt, von RapidSort mal abgesehen..
visisort.bas hat Folgendes geschrieben: | ' RapidSort berichtigt und nun lauffähig.
'Eignet sich nur zum sortieren von ubyte, ushort oder uinteger Werten.
'Dieser Sortieralgorithmus ist zwar sehr schnell, aber
'bei größeren Zahlenwerten (HiVal) wird ein riesiges
'Array (SortArray(LoVal TO HiVal)) entstehen, welches schnell
'die Speichergrenzen überschreitet und Fehler produzieren kann. | Das ist sehr schade..
Wäre natürlich interessant zu erfahren, wie sich der in FB eingebaute QSort in diesem Vergleich
behauptet(..\inc\crt\stdlib.bi) oder mein QSort(QSort.Pas), der rekursiv arbeitet..
[Edit]
..und jetzt auch als QSort.Bas verfügbar ist
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 12.05.2006, 22:11 Titel: |
|
|
Hi,
war eine gute Idee ytwinky, ich hab 'FB_qsort' in den Test eingebunden.
(arbeitet vermutlich auch rekursiv und ... )
http://www.freebasic.de/fbnp/?view=357
Schade, dein QSort.bas habe ich grad erst entdeckt, wird auch eingebaut .
irgendwie muss ich visisort etwas straffen, mit 14,91k bin ich hart an der nopaste-upload-grenze.
Gruß Volta _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 12.05.2006, 22:27 Titel: |
|
|
Entschuldigung
Es hat ein wenig gedauert, QSort.Pas nach QSort.Bas zu portieren..
Aber alles in Allem betrachtet sieht das FB-File logischer aus als das pascal-file..
schon wegen der Code: | procedure ..
procedure ..
end;
end; | Konstruktion, die nur pascalisten verstehen..
[Edit]
Bitte, laß mich gewinnen
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 12.05.2006, 23:31 Titel: |
|
|
@Volta: wenn du eigenen Webspace hast lad die bas-datei hoch und gib dann einfach die URL im Nopaste ganz unten ein, dann is die größe egal  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 13.05.2006, 23:10 Titel: |
|
|
Selbverständlich habe ich aus Neugier erstmal meinen QSort bei visisort eingebaut
Mein Qsort belegt wechselweise Platz 3 oder 4(hinter RapidSort und Quicksort)
Einige Code-Optimierungen habe ich auch vorgenommen, denn
irgendwas\2 ist gleich Int(irgendwas/2) und somit schneller..
i=i+1 durch i+=1 zu ersetzen, brachte nicht den erhofften Erfolg
Das Ergebnis steht hier..
Den eingebauten QSort überlasse ich volta
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 14.05.2006, 11:25 Titel: |
|
|
Hi,
nur die 'schnelleren' Sortierroutinen habe ich in einem Prog zusammengestellt und die Visualisierung rausgenommen.
http://nopaste.freebasic.de/?view=358
@ytwinky, wie du auch bemerkt hast, bringen einige Schreibweisen in FB kaum oder keine Geschwindigkeitsvorteile ( der ASM-Code ist oft sogar der gleiche).
Dein QSort habe ich mal versucht durch ASM etwas zu tunen auch nur mit mäßigem Erfolg. FB ist schon verdammt schnell.
In alten QB-Progs konnte ich immer wieder lesen das iterative Routinen schneller waren als rekursive. Das scheint auch bei FB zuzutreffen.
Gruß Volta
PS. kleiner Tip für diejenigen die auch den BE verwenden:
gebt bei RESFILE '-r' ein dann bleibt die asm-Datei erhalten. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 14.05.2006, 13:35 Titel: |
|
|
Hi volta,
was hältst du denn von der Idee, aus einem der schnelleren(ich meine damit nicht unbedingt YQSort )
eine pointergestützte Engine zu machen, die vom ArrayTyp unabhängig ist?
Naja, aufwärts- und abwärts sortieren ist keine große Aufgabe..
(Das geht mit variablen Parametern, für die, dies nicht wußten..)
Mit einer Engine ließen sich dann auch eigene Typen sortieren, je nach Feld..
..es gibt viel zu tun, lassen wirs liegen
btw:
PaulSquires hat die Version 1.70 vom JellyFishPro Editor herausgegeben.
Der unterstützt jetzt auch ein (englisches) HelpFile, eine deutsche Sprachdatei gibt es nicht..
Gruß
ytwinky
[Edit]
deutsche sprache schwerre sprache  _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 14.05.2006, 14:55 Titel: |
|
|
ytwinky hat Folgendes geschrieben: | PaulSquires hat die Version 1.70 vom JellyFishPro Editor herausgegeben.
Der unterstützt jetzt auch ein (englisches) HelpFile, eine deutsche Sprachdatei gibt es nicht.. | Klasse Teil
und wenn die deutsche 'FB-Ref-German-19-03-2006.chm' in FB.chm umbenannt und in das gleiche Verzeichnis wie JellyFish gespeichert wird, lässt sich mit F1 auch die Online-Hilfe in deutsch ausgeben.
ytwinky hat Folgendes geschrieben: | was hältst du denn von der Idee, aus einem der schnelleren(ich meine damit nicht unbedingt YQSort grinsen )
eine pointergestützte Engine zu machen, die vom ArrayTyp unabhängig ist? | mmm.., macht die qsort aus FB schon, wenn auch etwas lahm (und zu kompliziert ) ...ja würde mich schon reizen.
Gruß Volta _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 14.05.2006, 15:18 Titel: |
|
|
volta hat Folgendes geschrieben: | und wenn die deutsche 'FB-Ref-German-19-03-2006.chm' in FB.chm umbenannt und in das gleiche Verzeichnis wie JellyFish gespeichert wird, lässt sich mit F1 auch die Online-Hilfe in deutsch ausgeben.  | Das muß einem alten Mann doch gesagt werden
..ich hatte das noch gar nicht probiert..
EIN ECHT HEIßER TIPP!!
Danke..
[Edit]
Ich habe mal die GrafikAusgabe komplett entfernt
Von den QuickSorts scheint der QuickSort 2 der Schnellste zu sein.
[Edit2]
Es bleiben für mich nur 2 QuickSorts übrig, nämlich die, die kein ZusatzArray erzeugen
..und von diesen ist der ohne ASM für mich einfacher zu handlen
==> YQSort
..und YQSort kann nicht nur Doubles sortieren, sondern auch mit Pointern..
aber noch nicht mit ANY PTR
Also, YQSort.Bas sortiert jetzt doppelt genau und auf-/abwärts
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 04.06.2006, 20:22 Titel: |
|
|
Paul Squires hat am 27.05.2006 die neue Version 1.71 vom JellyfishPro Editor
freigegeben und ich habe sie gerade heruntergeladen und installiert.
(Letzte Änderungen vom 03.06.2006 sind bereits enthalten..)
Die deutsche Hilfe-Datei(19.03.2006) kann benutzt werden.
Ich weiß noch nicht, wie sich die neue Version in der Praxis macht,
aber eine Alternative zur FBIde ist sie allemal..
(Nicht nur wg. 'Organize User Tools')
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 27.01.2007, 23:59 Titel: |
|
|
Der Vollständigkeit halber möchte ich erwähnen, daß PaulSquires eine neue Version
vom JellyFishProEditor herausgegeben hat..
In V1.72 hat er die Schwierigkeiten mit Spaces in langen Dateinamen dadurch 'beseitigt', daß er kurze DateiNamen verwendet..
..Anmerkung von Peter Harder dazu(gekürzt):Das geht so nicht bei allen Windowsversionen..
Schaunwermal _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 01.08.2007, 17:17 Titel: |
|
|
Hi,
VisiSort.Bas war leider nicht ganz ohne Probleme nach FB0.17f zu übertragen..
Dank volta's Hilfe ist es nun aber fast geschafft und steht als VisiSortmg.Bas zum DL zur Verfügung..
Fbc meldet noch zwei Warnungen, aber das Programm läuft..
(Interessierte können noch den AsmQSort reinbasteln..)
Sicherlich finden aufmerksame Leser kleine Unterschiede zu VisiSort.Bas, das per FB-NoPaste vorhanden ist, diese sind aber 'kosmetischer' Natur und keine Veränderungen der Algorithmen selber..
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 01.08.2007, 19:30 Titel: |
|
|
ytwinky hat Folgendes geschrieben: | Sicherlich finden aufmerksame Leser kleine Unterschiede zu VisiSort.Bas, das per FB-NoPaste vorhanden ist, diese sind aber 'kosmetischer' Natur ... |
Hey ytwinky, wo ist mein ASM_QSort geblieben???
So einfach aus 'kosmetischen Gründen' auskommentiert?
Jahrelang habe ich daran getüftelt und gefeilt ..
Im Ernst, ich schick dir eine Version ohne diese Fehlermeldungen aber mit ASM_QSort und für die 'Kosmetik' habe ich die Farbgebung (relativ zum langsamen BubbleSort) umgeschrieben. _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 01.08.2007, 20:12 Titel: |
|
|
Ich werde diesen Cast-Befehl wohl nie verstehen
Aber jetzt wird das Programm tatsächlich ohne Warnungen kompiliert..
..und da du so auf deinen in jahrelanger, mühevoller Kleinarbeit entwickelten ASM_QSort() Wert legst..
..ruft der sich in der neuen Version eben nur noch selbst auf
(mit dem Ergebnis, daß er der schnellste (Quick-Sort)-Algorithmus ist..)
Danke jedenfalls für die schnelle Problemlösung!
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 01.08.2007, 20:44 Titel: |
|
|
Das war ein Gag!
Ich wundere mich warum mein ASM_QSort nicht schneller wird, und habe deinen Hinweis glatt überlesen.
Und jetzt macht sich diese jahrelange Schufterei bezahlt, ytwinky _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 01.08.2007, 20:48 Titel: |
|
|
Ein eingespieltes Team.
ytwinky, der, der mit der Rekursion tanzt...und volta, dessen Muttersprache ASM zu sein scheint  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
|