Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » COBlist mit 150000 Elementen schnell durchsuchen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.04.2005, 10:35 Uhr
Steffen_dd



Hi

ich such ne Möglichkeit meine COblist Listen schnell zu durchsuchen. Und zwar baue ich mehrere COblist-Listen auf die teilweise bis zu 150000 CObjekt-Elemente enthält.

Derzeit mache ich es so das ich wenn ich ein neues CObjekt-Element habe die COblist von oben nach unten durchlaufe und nachsehe ob ich es schon habe. Wenn ich es habe gibt es ein False zurück. Wenn ich es noch nicht habe dann kommt es mittels COblist.Addtail ans Ende der Liste und die Suche geht mit dem nächtes CObjekt-Element weiter.

Das funktioniert zwar alles ganz gut, bloss mit der Laufzeit bin ich überhaupt nicht zufrieden, da es ab 10000 Elementen echt träge wird.

Jetzt wollt ich die Suche einfacher machen, indem ich in die Mitte der Liste springe und dann nur noch den Oberen oder unteren Teil durchsuche, und so weiter. (so ne Art Quicksearch)

Anfang und Ende kann ich ja noch per GetHeadPos und GetTailPos ermitteln, aber für die Mitte fällt mir nix ein, ausser über Getnext und Listenlänge/2 ermitteln.
Weiss jemand da ne Idee? Ein (GetHeadPos + GetTailPos)/2=Mitte geht auch nicht, da es ja Pointer sind, oder gibt es doch ne Möglichkeit?

Danke Steffen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.04.2005, 15:17 Uhr
Spacelord
Hoffnungsloser Fall


Lässt sich deine Liste denn nach einem Kriterium ordnen?
Sofern die Liste nicht sortiert ist bringt die "Teilung" der Liste doch garnichts?
Such mal im Internet nach Skiplisten oder eventuell wäre auch nen B-Baum für dich interessant.Beide Datenstrukturen setzen natürlich voraus dass deine Objekte sortierbar sind.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.04.2005, 16:14 Uhr
Steffen_dd



Hi

ja, die Liste lässt sich sortieren, da die CObject-namen eindeutig sind.
Das sortieren würde ich dann gleich mit dem Suchen verbinden, da ich ja hier erstmal nach dem CObject-namen suche und wenn der nicht vorhanden ist an der richtigen Stelle gleich einfügen könnte.

Gruss
Steffen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.04.2005, 18:27 Uhr
Spacelord
Hoffnungsloser Fall


Schau dir mal den set-Container aus der STL an.
www.sgi.com/tech/stl/set.html

Macht ziemlich genau was du haben möchtest.

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: