Bubble Sort
Christian
- php
0 Thomas Schmieder0 Bio
Hi,
hat jemand zufällig einen fertigen Bubble Sort Algorihmus mit dem ich ein Array mindestens auf 3 Stellen genau Sortieren kann?
Muss auch nicht unbedingt Bubble Sort sein währe aber schön da ich demnächst einen Bubble Sort brauche der sowas kann. Vielen Dank.
Hallo,
in PHP gibt es fertige Sortieralgorithmen. Die sind wesentlich effektiver als der gute alte Bubble.
Sollte es aber um das Verständnis von Sortieralgorithmen gehen, dann kann ich Dir den Bubble in zwei Versionen unter Turbo-Pascal anbieten.
Version 1: Sortierung erfolgt im Hauptspeicher
Version 2: Sortierung erfolgt auf HardDisk-Basis
Die erheblichen Unterschiede liegen in der Optimierung der zeitkritischen Seqzenzenen und Funktionen.
Ganz unsortierte Grüße aus http://www.braunschweig.de
Tom
Hi vielen Dank für Deine Antwort.
Jedoch hab ich leider keine Ahnung von Turbo Pascal. Die Sortierfunktionen in PHP Sortieren mir aber nicht Richtig (keine Ahnung ob das an mir liegt denke aber nicht) wenn ich mit z.B. array_multisort sortiere bekomme ich das Ergebniss zwar in alphabetischer Reihenfolge aber Groß und Kleinbuchstaben getrennt.
Wenn jemand dazu eine Lösung weiss würde mir natürlich auch entsprechen.
Moin!
Jedoch hab ich leider keine Ahnung von Turbo Pascal. Die Sortierfunktionen in PHP Sortieren mir aber nicht Richtig (keine Ahnung ob das an mir liegt denke aber nicht) wenn ich mit z.B. array_multisort sortiere bekomme ich das Ergebniss zwar in alphabetischer Reihenfolge aber Groß und Kleinbuchstaben getrennt.
Wenn du schätzungsweise mehr als 10 Einträge im Array hast, wird Bubble Sort immer ineffektiver. Und selbstgeschriebene Sortierfunktionen sind ohnehin ziemlich lahm, verglichen mit PHP.
Du hast leider noch viel zuwenig Informationen gegeben, was genau du sortieren willst. array_multisort() ist für das Sortieren von mehreren Arrays parallel. Wenn das nicht hilft, hast du vermutlich deine Daten ungünstig in den Arrays gespeichert. Es gibt immerhin noch jede Menge alternativer Sortierfunktionen (natcasesort() etc.), und außerdem kannst du deine eigene Sortierfunktion - genauer: den Vergleichsteil, welcher Eintrag kleiner ist als ein anderer - schreiben, und erhälst dann genau die Ergebnisse, die du willst. Das ist allerdings nicht kombinierbar mit array_multisort() - deswegen speicherst du deine Daten vermutlich "ungünstig", mehrdimensionale Arrays wären z.B. eine Idee.
- Sven Rautenberg
... wenn ich mit z.B. array_multisort sortiere bekomme ich das Ergebniss zwar in alphabetischer Reihenfolge aber Groß und Kleinbuchstaben getrennt.
Das liegt daran, dass standardmäßig die "C" oder "POSIX" locale (Sprachumgebung) gilt, da werden die Strings einfach ASCII-mäßig sortiert.
Du musst die Sprachumgebung per setlocale() umschalten, z.B. für Deutsch:
setlocale(LC_ALL, 'de_DE')
siehe:
http://www.php.net/manual/en/function.setlocale.php
Roland
Sup!
Programmier' doch besser einen Mergesort...
Gruesse,
Bio