Jump to content

Comparison of data structures

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Siddharthist (talk | contribs) at 13:51, 10 March 2023 (Maps: Formatting). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.


This is a comparison of the performance of notable data structures, as measured by the complexity of their logical operations. For a more comprehensive listing of data structures, see List of data structures.

The comparisons in this article are organized by abstract data type. As a single concrete data structure may be used to implement many abstract data types, some data structures may appear in multiple comparisons (for example, a hash map can be used to implement an associative array or a set).

Maps

Maps store a collection of (key, value) pairs, such that each possible key appears at most once in the collection. They generally support three operations:[1]

  • Insert: add a new (key, value) pair to the collection, mapping the key to its new value. Any existing mapping is overwritten. The arguments to this operation are the key and the value.
  • Remove: remove a (key, value) pair from the collection, unmapping a given key from its value. The argument to this operation is the key.
  • Lookup: find the value (if any) that is bound to a given key. The argument to this operation is the key, and the value is returned from the operation.

Unless otherwise noted, all data structures in this table require O(n) space.

Family Data structure Lookup, removal Insertion Ordered
average worst case average worst case
Hash table O(1) O(n) O(1) O(n) No
Test O(1) O(n) O(1) O(n) No
Self-balancing binary search tree B-tree[2] O(log n) O(log n) O(log n) O(log n) Yes
Unbalanced binary search tree O(log n) O(n) O(log n) O(n) Yes
Sequential container of key–value pairs
(e.g. association list)
O(n) O(n) O(1) O(1) No

Notes

  1. ^ Mehlhorn, Kurt; Sanders, Peter (2008), "4 Hash Tables and Associative Arrays", Algorithms and Data Structures: The Basic Toolbox (PDF), Springer, pp. 81–98, archived (PDF) from the original on 2014-08-02
  2. ^ Cormen et al., p. 484.

References