| Zeile 83: | Zeile 83: | ||
::*Es ist sowohl ein Algorithmus, nämlich die Erweiterung von RadixSort, als auch eine Implementierung, die aus pragmatischen Gründen den gleichen Namen bekommen hat. In C gibt es integer und floats mit unterschiedlichen Ausprägungen sowie strings und alle diese lassen sich sortieren. Dann gibt es die zusammengesetzten Strukturen, die aus diesen Grundtypen aufgebaut werden. Alle diese können mittels ExtraDix sortiert werden und andere Datentypen sind mir in C nicht bekannt. Was also meinst du bitte mit "Alle nicht in C direkt eingebauten Datentypen"? Und was ist unredlich am Vergleich mit Quicksort? Schließlich wird dieser Algorithmus an vielen Stellen als der schnellste angepriesen. --[[Benutzer:JDHenning|JDHenning]] 12:13, 19. Mär. 2010 (CET) | ::*Es ist sowohl ein Algorithmus, nämlich die Erweiterung von RadixSort, als auch eine Implementierung, die aus pragmatischen Gründen den gleichen Namen bekommen hat. In C gibt es integer und floats mit unterschiedlichen Ausprägungen sowie strings und alle diese lassen sich sortieren. Dann gibt es die zusammengesetzten Strukturen, die aus diesen Grundtypen aufgebaut werden. Alle diese können mittels ExtraDix sortiert werden und andere Datentypen sind mir in C nicht bekannt. Was also meinst du bitte mit "Alle nicht in C direkt eingebauten Datentypen"? Und was ist unredlich am Vergleich mit Quicksort? Schließlich wird dieser Algorithmus an vielen Stellen als der schnellste angepriesen. --[[Benutzer:JDHenning|JDHenning]] 12:13, 19. Mär. 2010 (CET) | ||
::*Worin besteht denn der Unterschied zwischen Radixsort und ExtraDix? Es ist unredlich in dem Sinne, dass man bei Quicksort eine beliebige Ordnung auf den zu sortierenden Objekten angeben kann, bei Radixsort aber nur eine Ordnung auf dem Alphabet und es wird automatisch daraus die lexikographische Ordnung. Bei ExtraDix kommt hinzu (zumindest so wie ich das verstehe), dass die Ordnung automatisch die der Binärdarstellung des Objekts ist (und man kann dann nur zwischen aufsteigend bzw. absteigend wählen). Außerdem kann man bei Strukturen sowie ich das sehe nur ein Feld der Struktur auswählen und nach diesem Sortieren lassen. Was ist nun wenn man mehrere Felder braucht, um zu vergleichen? zB könnte ich mir einen n-dimensionalen Vektor vorstellen, den ich der Länge nach sortieren will, dabei aber nicht die Länge explizit speichern will. Ich will deine Implemtierung in keinster Weise diskreditieren, aber 1. ich halte Sortieralgorithmen nicht relevant für dieses Wiki (dafür gibt es genug andere Plätze im Internet um eine gute Erklärung dafür zu finden), falls du anderer Meinung bist, müsstest du mir Erklären warum das speziell beim OSDev (das ist das Thema des Wikis) und nicht nur allgemein beim Programmieren (das ist nicht das Thema des Wikis) relevant ist 2. Ich halte ExtraDix für eine Implementierung von RadixSort und nicht für einen Algorithmus (siehe oben) | ::*Worin besteht denn der Unterschied zwischen Radixsort und ExtraDix? Es ist unredlich in dem Sinne, dass man bei Quicksort eine beliebige Ordnung auf den zu sortierenden Objekten angeben kann, bei Radixsort aber nur eine Ordnung auf dem Alphabet und es wird automatisch daraus die lexikographische Ordnung. Bei ExtraDix kommt hinzu (zumindest so wie ich das verstehe), dass die Ordnung automatisch die der Binärdarstellung des Objekts ist (und man kann dann nur zwischen aufsteigend bzw. absteigend wählen). Außerdem kann man bei Strukturen sowie ich das sehe nur ein Feld der Struktur auswählen und nach diesem Sortieren lassen. Was ist nun wenn man mehrere Felder braucht, um zu vergleichen? zB könnte ich mir einen n-dimensionalen Vektor vorstellen, den ich der Länge nach sortieren will, dabei aber nicht die Länge explizit speichern will. Ich will deine Implemtierung in keinster Weise diskreditieren, aber 1. ich halte Sortieralgorithmen nicht relevant für dieses Wiki (dafür gibt es genug andere Plätze im Internet um eine gute Erklärung dafür zu finden), falls du anderer Meinung bist, müsstest du mir Erklären warum das speziell beim OSDev (das ist das Thema des Wikis) und nicht nur allgemein beim Programmieren (das ist nicht das Thema des Wikis) relevant ist 2. Ich halte ExtraDix für eine Implementierung von RadixSort und nicht für einen Algorithmus (siehe oben) | ||
| + | ::*Es ist, wie der Name schon sagt, eine Erweiterung von Radixsort. Mir ist keine Version von Radixsort bekannt, die etwa floats sortiert, ohne sie zuvor entweder in eine dezimale Darstellung zu bringen, oder sie bitweise zu bearbeiten. Der Vorteil von ExtraDix ist, dass alle gängigen Sortieraufgaben mit einer Geschwindigkeit erledigt werden, die sehr dicht am mathematischen Optimum liegen (und ich weiß, dass man mit Bucketsort schneller ist, wenn man nach 16-Bit-Zahlen sortiert und 65.000 Eimer aufstellt, aber dann ist man auch sehr viel schneller als Quicksort). Ich will auch nicht Quicksort schlecht machen; es ist nur so, dass es ab ein paar hundert Datensätzen nicht der schnellste Algorithmus ist. Und es gibt natürlich auch Aufgaben, die man mit ExtraDix nicht handhaben kann. Aber alle Sortieraufgaben, die man mit normalen Datenbanken machen kann, kann man damit erledigen. Und warum ich gefragt habe ob es euch interessiert, liegt an dem alten Unix-Spruch: "Letztendlich sind alles Dateien" der eigentlich ergänzt werden müßte mit "und viele davon sind Datenbank-Tabellen". Und wenn es euch nicht interessiert, dann beenden wir doch ganz einfach die Diskussion an dieser Stelle.--[[Benutzer:JDHenning|JDHenning]] 11:22, 22. Mär. 2010 (CET) | ||
* Hier kommt dein Wunsch hin ;) | * Hier kommt dein Wunsch hin ;) | ||