Laden...

Sortieren von Arrays

Erstellt von husky410 vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.498 Views
husky410 Themenstarter:in
225 Beiträge seit 2005
vor 18 Jahren
Sortieren von Arrays

Hallo!
Ich will ein Array sortieren (Quicksort oder Bubblesort):

public Fremdvariable[] MyItem = new Fremdvariable[10000];

Das Problem dabei ist, dass ich "Arry.Sort" nicht verwenden kann da es sich um keinen Standardtypen wie wie z. B. String handelt.

Auch die "IComparable"-Schnittstelle kann ich nicht benutzen, weil ich ein Array eines Datentyps einer Fremdbibliothek sortieren will und diese nicht implementiren kann.

Hat da jemand eine fertige Lösung für gesehen oder Quellcode?

mfg

husky

A
452 Beiträge seit 2005
vor 18 Jahren

Signatur:
Die Signatur wird unter Ihren Beiträgen dargestellt.

😁 😮 ?( 8) 😭 8o :] 🙁 =) X( 🙂 😜 😉 :rolleyes: 👶 :evil: 👅
Smilies find ich doof =]

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo Husky!

Suchst Du einen Algorithmus dafür?

Dann schau mal hier:

Quicksort bei Codeproject.com

Ansonsten verstehe ich Deine Frage nicht so ganz...

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

P
939 Beiträge seit 2003
vor 18 Jahren

Wenn ein Typ nicht IComparable implementiert, kann man die Funktionalität auch losgelöst per IComparer bereitstellen.

Du schreibst einfach einen IComparer für den Typ in der Fremdbibliothek und übergibst ihn als zweiten Parameter an die Sort-Methode.

Gruss
Pulpapex

S
8.746 Beiträge seit 2005
vor 18 Jahren

.NET-Sort ist bereits Quicksort.....

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo husky410,

bitte nicht wie vorgeschlagen eine eigene Sort-Routine implementieren, sondern die Lösung von Pulpapex verwenden.

herbivore

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo Herbivore!

Warum sollte man keine eigene Suchfunktion schreiben? Manchmal ist Quicksort nicht das schnellste, das hängt doch von der Vorsortierung ab, wenn ich mich nicht irre?

Ich hab mal vor Ewigkeiten alle möglichen Suchalgorithmen in C implementieren müssen, und dann haben wir zu Testzwecken das auf große Datenbanken losgelassen.

Also Quintessenz war damals (und das ist das einzige was ich behalten konnte 🙂 dass je nach dem was für Daten vorliegen, und wie sie eben vorsortiert sind dieser oder jener Algorithmus schneller war.

Prinzipiell hast Du aber Recht, wenn man keine Informationen darüber hat, wie die Quelle aussieht, ist Quicksort (oder auch .NET-Sort) im Mittelmaß das Schnellste.

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo norman_timo,

natürlich gibt es Gründe für spezielle Situationen spezielle Sortierroutinen zu schreiben. Was ich z.B. vermisse ist eine Sortierungroutine, die stabil* sortiert. Aber ich meinte das genau so, wie du im letzten Abschnitt schreibst. Wenn man nichts spezielles braucht, sollte man nichts selber schreiben.

* Man unterscheidet zudem zwischen stabilen und instabilen Sortierverfahren. Stabile Sortierverfahren sind solche, die die relative Reihenfolge von Elementen, die bezüglich der Ordnung äquivalent sind, nicht verändern, während instabile Sortierverfahren diese Reihenfolge ändern können. Quelle: Wikipedia

herbivore