Welche Datenstruktur ist am besten, um die Millionen/Milliarden von Datensätzen (vorausgesetzt ein Datensatz enthält einen Namen und eine Ganzzahl) im Arbeitsspeicher (RAM) zu speichern? Beste in Bezug auf - minimale Suchzeit (1. Priorität) und Speicher effizient (2. Priorität)? Ist es Patricia Baum? Irgendein anderes besser als das?Datenstruktur zum Speichern von Milliarden von Ganzzahlen
Der Suchschlüssel ist eine Ganzzahl (z. B. eine 32-Bit-Zufallszahl). Und alle Datensätze sind im RAM (vorausgesetzt, dass genügend RAM verfügbar ist).
In C-Plattform Linux ..
Grundsätzlich Mein Server-Programm weist einen 32-Bit-zufälligen Schlüssel für den Benutzer, und ich mag den entsprechenden Benutzerdatensatz speichern, so dass ich den Rekord in effizienter Weise suchen/löschen. Es kann davon ausgegangen werden, dass die Datenstruktur gut gefüllt sein wird.
Suchen Sie nach dem Namen oder der Nummer? Oder beides? –
Wird die Menge der Datensätze oft aktualisiert, und wie gründlich? Wie sieht die Verteilung der Ganzzahlen aus? Wird eine Hash-Tabelle mit allen Namen bequem in den verfügbaren Speicher passen? – reinierpost