Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Suchen in unsortiertem Array of Integer beschleunigen. (https://www.delphipraxis.net/133677-suchen-unsortiertem-array-integer-beschleunigen.html)

Satty67 7. Mai 2009 11:32

Re: Suchen in unsortiertem Array of Integer beschleunigen.
 
Ich hoffe, dass ich bis zum Wochenende das System fertig hab'. Auf der ToDo Liste ist nicht mehr viel und auch fast nur noch Kosmetik.

Dann poste ich das komplette Paket samt Demo-Programm. Da seht Ihr dann besser, wie man das am besten lösen könnte.

Satty67 12. Mai 2009 08:53

Re: Suchen in unsortiertem Array of Integer beschleunigen.
 
Ok, das ganze Paket dauert noch eine Weile, hab' mich entschlossen noch ein paar Funktionen zuzufügen, bevor ich es freigebe. Aber zum Problem habe ich eben eine Lösung gefunden:

Der Index enthält jetzt zwei Werte: Offset (in der Datei) und UnsortedAnc (Vorfahre in der unsortierten Liste). Sind bei 1 Mio. Einträgen nur 4 MByte. Nach dem Sortieren wird UnsortedAnc einmal angepasst (das optimiere ich noch, damit es während dem Sortieren passiert). Sortieren dauert ein paar ms. länger, aber da nur einmal, fällt das nicht wirklich ins Gewicht.

Da ich immer nur den Index-Eintrag mit dem höchsten Offset-Eintrag brauche und nicht einen beliebigen Offset suchen muss, reicht das. Eine private Variable der Index-Klasse merkt sich den Index mit dem höchsten Offset. Soll der gelöscht werden, wir die Variable zuvor mit UnsortedAnc aus diesem Index aktualisiert. Somit hab' ich keine n-Zugriffe mehr, sondern nur noch einen + neue Zuweisung. Zudem ist es der gleiche Code, egal ob der Index sortiert oder unsortiert vorliegt.

Tree's verstehe ich, aber strengen mich an. Skiplisten verstehe ich (noch) nicht... auf jeden Fall ist mir im Moment die klassische Lösung am liebsten ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz