Welchen Sortieralgorithmus verwenden?

Gast #3468442
Hallo,

ich habe ein Sensor-IC im Einsatz, das über einen dedizierten 48bit-DSP 
verfügt. Dieser wird in Assembler programmiert, eine andere 
Entwicklungsumgebung steht nicht zur Verfügung, aber das ist auch nicht 
weiter tragisch. Die Sensordaten liegen in 48bit breiten Registern und 
ich möchte diese nun gern im DSP filtern. Dazu habe ich an ein 
Median-Filter gedacht. Dafür gibt es ja die verschiedensten 
Implementierungen, doch welche ist für mich die geeignetste? Quick Sort? 
Bubble Sort?
Die Filterung soll irgendwo zwischen 3 und 9 Werten liegen. Könnt ihr 
mir bei der Wahl helfen?

Dank euch.
Gast
Bei 3 Werten brauchst du keinen Sortieralgorithmus, das geht per 
Fallunterscheidung.
Die Laufzeitkomplexität von Quicksort ist zwar für große Mengen besser 
(nlog(n)), das lohnt sich aber für diese Fälle nicht, da die 
Vorbereitungsarbeit (Einsinken) zu lange dauert. Ich würde Shellsort 
nehmen: http://de.wikipedia.org/wiki/Shellsort
ElektronikFreak schrieb:
> Bei 3 Werten brauchst du keinen Sortieralgorithmus, das geht per
> Fallunterscheidung.
> Die Laufzeitkomplexität von Quicksort ist zwar für große Mengen besser
> (nlog(n)), das lohnt sich aber für diese Fälle nicht, da die
> Vorbereitungsarbeit (Einsinken) zu lange dauert. Ich würde Shellsort
> nehmen: http://de.wikipedia.org/wiki/Shellsort

Ich habe schon darauf hingewiesen, dass man gar nicht sortieren muss. 
Shellsort ist massiv schlechter als ein Selection Algorithmus.

Falls deine Filtergrößen tatsächlich überschaubar gross (3-9) sind, dann 
kannst du dir z.B. mit diesem Perl Modul ein spezielles Sorting Network 
erstellen lassen, welches nur den Median bestimmt:

http://search.cpan.org/~fractal/Algorithm-Networksort-Chooser-0.100/bin/algorithm-networksort-chooser

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.