Die durchschnittliche Hashtable-Komplexität ist O (1) und die Worst-Case-Komplexität ist O (n). Die durchschnittliche Komplexität von Balanced Tree ist O (logn), die Worst-Case-Komplexität ist O (logn). Sind die meisten Datenbanken mit "Tree" anstelle von "Bucket" -Hashtables entworfen? Dies würde den durchschnittlichen Fall O (1) und den schlechtesten Fall O (logn) ergeben, richtig?Baum Hashtables?
Antwort
Hashtables ... Worst Case Komplexität ist O (n).
, dass für viele „getrennte Chaining“ aka „offene Hashing“ Implementierungen wahr ist, aber einige solche Implementierungen (zum Beispiel Java) verwenden ausgeglichene Bäume von kollidierenden Elemente, Worst-Case-Komplexität zu reduzieren O (log n). Für "closed hashing" -Implementierungen kann der Worst-Case-Fall sogar schlechter sein als O (n): Alles hängt davon ab, wie aufeinanderfolgende Buckets für die Sondierung nach Kollisionen ausgewählt werden und wann die Anzahl der Buckets erhöht wird.
Sind die meisten Datenbanken mit "tree" anstelle von "bucket" -Hashtables entworfen?
Was eine "Datenbank" ausmacht, ist vertretbar. Eine Umfrage unpraktisch machen. Und was Sie mit Ihrer Frage meinen, ist unklar - vielleicht wollen Sie die getrennte Verkettung mit Bäumen mit geschlossenem Hashing vergleichen? Ich kann die gängige Praxis unter "Datenbanken" nicht kommentieren, werde aber darauf hinweisen, dass das Beste in einer bestimmten Situation sehr stark von der Größe der gespeicherten Schlüssel und Werte und ihrer Kollisionsanfälligkeit abhängt. Zur Veranschaulichung des Kontrasts verwenden Python "dict" s (Wörterbücher, was der Python-Begriff für Hash-Tabellen ist) geschlossenes Hashing, während der C++ - Standard eine separate Verkettung effektiv vorschreibt, aber Programmierer beider Sprachen sich relativ selten über diese Implementierungsentscheidungen beschweren.
Das macht die Dinge ziemlich klar, danke! Ich war nur neugierig! –
- 1. Powershell Hashtables Schlüssel Bestellung
- 2. Hashtables/Wörterbücher, die Schwimmer verwenden/verdoppelt
- 3. Hashtables (Dictionary usw.) mit ganzzahligen Schlüsseln
- 4. Wie verwende ich Hashtables/HashSets in .NET?
- 5. C# - JSon formatierte Daten in verschachtelte Hashtables
- 6. Was sind Splay-Baum, Rot-Schwarz-Baum, AVL-Baum, B-Baum und T-Baum?
- 7. Mit Baum/Baum mit Lumen
- 8. Wann wählen Sie RB-Baum, B-Baum oder AVL-Baum?
- 9. Wie können Sie JavaScript-Hashtables in Knockout beobachten?
- 10. ein Baum
- 11. Baum Zeichenausrichtung
- 12. Python - NLP - konvertieren iter (iter (Baum)) in Liste (Baum)
- 13. Wie man Baum zu threadartigem binärem Baum umwandelt
- 14. Filtern eines Baum-Controllers
- 15. KD-Baum in GLSL
- 16. Haskell Polymorphe Baum Sum
- 17. C++ einen Baum zeichnen
- 18. Auto Expand Produktkategorie Baum
- 19. Linear Baum in Flex
- 20. Iterative Baum zu Fuß
- 21. Haskell: Flachen binären Baum
- 22. Subtree Extraktion NLTK Baum
- 23. Wie diesen Baum/Graph
- 24. C# Baum/MindMap GUI
- 25. Expression Baum GetString Ergebnis
- 26. Baum tk (Datei-Explorer)
- 27. Abhängigkeit Baum zu Triplets
- 28. D3 Baum Level Selector
- 29. Priorität Recherche Baum Verwirrung
- 30. Balance BST Baum manuell
"O (log n + 1)" besiegt den Zweck der Big-O-Notation –