| Zeile 84: | Zeile 84: | ||
::*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) | ::*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) | ||
| + | ::*IMO ist diese Diskussion ganz und gar nicht überflüssig. Denn im OSDev muss man früher oder später sortieren (z.B. bei der GUI). Dabei stößt man aber auf ganz andere Probleme als der "gewöhnliche" Programmierer: Der Quicksort ist zwar immer noch der schnellste Alogrithmus, aber leider auch rekursiv. Radixsort ist langsamer, speicherplatzintensiver und nur eingeschränkt nutzbar, aber dafür auf jeden Fall stabil. Man wird also früher oder später nicht ums Sortieren herumkommen, und dann sollte man hier im Wiki doch eine Antwort finden, wie man dieses Problem am sichersten und schnellsten löst. --[[Benutzer:Bjork|Bjork]] 11:32, 23. Mär. 2010 (CET) | ||
* Hier kommt dein Wunsch hin ;) | * Hier kommt dein Wunsch hin ;) | ||