Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
Delphi 12 Athens
|
Re: Suchen in unsortiertem Array of Integer beschleunigen.
7. Mai 2009, 10:25
löschts du die "Datensätze" nacheinander oder liegt 'ne Liste der zu löschenden Datensätzte vor, so daß man alles in einem Durchgang machen könnte?
praktisch das Array 2-mal parallel durchgehn
- einmal um die zu löschenden Datensätze zu suchen
- und zugleich nocheinmal wo die zu verschiebenden Datensätze gesucht werden
zu verschieben sind ja alle mit
Index >= (Dateigröße / Datensatzgröße - LöschendeDatensätze)
so könntest du die Suche (n/2)*großesArray
in 2*(n/2)*großesArray + n*(n/2)*kleinesArray ersetzen
das kleine Array = die Liste der zu löschenden Datensätze
(beim Durchgang des großen arrays wird ja nun nichtmehr je ein Datensatz gesucht, sondern gleich alle zusammen)
das könntest du dann höchstens nochmal optimieren, indem du deine aktuelle Löschmethode (jeden Datensatz einzaln suchen und löschen) mit dem hier Beschriebenem kombinierst
wenn AnzählZuLöschenderDatensätze > Datensatzanzahl/2 dann deine aktuelle Methodem, ansonsten mein Vorschlag
$2B or not $2B
|