Knowledge

Hash table

Source 📝

2215: 1848: 2206: 1840: 190: 3892:, auxiliary data tables that are used to speed up the access to data that is primarily stored in slower media. In this application, hash collisions can be handled by discarding one of the two colliding entries—usually erasing the old item that is currently stored in the table and overwriting it with the new item, so every item in the table has a unique hash value. 2439:. The neighbourhood characteristic of hopscotch hashing guarantees a property that, the cost of finding the desired item from any given buckets within the neighbourhood is very close to the cost of finding it in the bucket itself; the algorithm attempts to be an item into its neighbourhood—with a possible cost involved in displacing other items. 1831:. The ideal case is such that no two search keys hashes to the same array index. However, this is not always the case and is impossible to guarantee for unseen given data. Hence the second part of the algorithm is collision resolution. The two common methods for collision resolution are separate chaining and open addressing. 2396:
worst-case lookup complexity and constant amortized time for insertions. The collision is resolved through maintaining two hash tables, each having its own hashing function, and collided slot gets replaced with the given item, and the preoccupied element of the slot gets displaced into the other hash
3070:
caused by the old hash table. In such case, the rehashing operation is done incrementally through extending prior memory block allocated for the old hash table such that the buckets of the hash table remain unaltered. A common approach for amortized rehashing involves maintaining two hash functions
1808:
offers a way to prove a certain hash function does not have bad keysets for a given type of hashtable. A number of K-independence results are known for collision resolution schemes such as linear probing and cuckoo hashing. Since K-independence can prove a hash function works, one can then focus on
3058:, cannot pay the price of enlarging the hash table all at once, because it may interrupt time-critical operations. If one cannot avoid dynamic resizing, a solution is to perform the resizing gradually to avoid storage blip—typically at 50% of new table's size—during rehashing and to avoid 1772:
of the hash values is a fundamental requirement of a hash function. A non-uniform distribution increases the number of collisions and the cost of resolving them. Uniformity is sometimes difficult to ensure by design, but may be evaluated empirically using statistical tests, e.g., a
1863:
for each search array index. The collided items are chained together through a single linked list, which can be traversed to access the item with a unique search key. Collision resolution through chaining with linked list is a common method of implementation of hash tables. Let
2350:. The collision in coalesced hashing is resolved by identifying the largest-indexed empty slot on the hash table, then the colliding value is inserted into that slot. The bucket is also linked to the inserted node's slot which contains its colliding hash address. 1802:, the mapping of two or more keys to consecutive slots. Such clustering may cause the lookup cost to skyrocket, even if the load factor is low and collisions are infrequent. The popular multiplicative hash is claimed to have particularly poor clustering behavior. 1780:
The distribution needs to be uniform only for table sizes that occur in the application. In particular, if one uses dynamic resizing with exact doubling and halving of the table size, then the hash function needs to be uniform only when the size is a
2430:
of buckets—the subsequent buckets around any given occupied bucket, also called a "virtual" bucket. The algorithm is designed to deliver better performance when the load factor of the hash table grows beyond 90%; it also provides high throughput in
2238:, until an unoccupied slot is found. When searching for an entry, the buckets are scanned in the same sequence, until either the target record is found, or an unused array slot is found, which indicates an unsuccessful search. 2132:
slots providing constant worst-case lookup time, and low amortized time for insertion. A study shows array-based separate chaining to be 97% more performant when compared to the standard linked list method under heavy load.
2218:
This graph compares the average number of CPU cache misses required to look up elements in large hash tables (far exceeding size of the cache) with chaining and linear probing. Linear probing performs better due to better
3045:
privately and every item in the original hash table gets moved to the newly allocated one by computing the hash values of the items followed by the insertion operation. Rehashing is simple, but computationally expensive.
6440: 283:
is infinite, the entire key can be used directly as an index to locate its value with a single memory access. On the other hand, if infinite time is available, values can be stored without regard for their keys, and a
1667: 263:
In a well-dimensioned hash table, the average time complexity for each lookup is independent of the number of elements stored in the table. Many hash table designs also allow arbitrary insertions and deletions of
3337: 6434: 702: 2501:
be the key to be inserted and bucket to which the key is hashed into respectively; several cases are involved in the insertion procedure such that the neighbourhood property of the algorithm is vowed: if
2209:
Hash collision resolved by open addressing with linear probing (interval=1). Note that "Ted Baker" has a unique hash, but nevertheless collided with "Sandra Dee", that had previously collided with "John
3773: 245:, from which the desired value can be found. During lookup, the key is hashed and the resulting hash indicates where the corresponding value is stored. A map implemented by a hash table is called a 4762:"On the criterion that a given system of deviations from the probable in the case of a correlated system of variables is such that it can be reasonably supposed to have arisen from random sampling" 2529:
to 1; if not empty, linear probing is used for finding an empty slot in the table, the bitmap of the bucket gets updated followed by the insertion; if the empty slot is not within the range of the
3947:, an "object" is a mutable collection of key-value pairs (called "properties"), where each key is either a string or a guaranteed-unique "symbol"; any other value, when used as a key, is first 3275: 3221: 3176: 1089: 5781: 2549:
Robin Hood hashing is an open addressing based collision resolution algorithm; the collisions are resolved through favouring the displacement of the element that is farthest—or longest
1516: 3660: 5881:
Zhong, Liang; Zheng, Xueqian; Liu, Yong; Wang, Mengting; Cao, Yang (February 2020). "Cache hit ratio maximization in device-to-device communications overlaying cellular networks".
2748: 1170: 2816: 903: 3481: 3411: 1256: 1016: 944: 868: 821: 3123: 3096: 3910:, which can store unique values without any particular order; set is typically used in testing the membership of a value in the collection, rather than element retrieval. 2043: 1431: 3808:) of the operation in a hash table is presupposed on the condition that the hash function doesn't generate colliding indices; thus, the performance of the hash table is 610: 3680: 3538: 2981: 2930: 2282: 986: 841: 794: 771: 652: 497: 1562: 1385: 1196: 2619: 2130: 3806: 3607: 3019: 2394: 2254:, in which the interval between probes is increased by adding the successive outputs of a quadratic polynomial to the value given by the original hash computation. 2079: 2956: 2523: 2499: 3578: 3558: 2905: 2876: 2856: 2836: 2679: 2659: 2639: 2587: 2476: 2099: 1902: 1882: 1751: 1731: 1711: 1687: 1582: 1536: 1359: 1335: 1311: 1280: 1109: 747: 725: 575: 555: 517: 471: 451: 431: 916:
Separate chaining hash tables suffer gradually declining performance as the load factor grows, and no fixed point beyond which resizing is absolutely needed.
6223: 1595: 954:
With open addressing, each slot of the bucket array holds exactly one item. Therefore an open-addressed hash table cannot have a load factor greater than 1.
6141: 5977: 5855: 2180: 5471:
Poblete, P. V.; Viola, A. (July 2019). "Analysis of Robin Hood and Other Hashing Algorithms Under the Random Probing Model, With and Without Deletions".
2230:
is another collision resolution technique in which every entry record is stored in the bucket array itself, and the hash resolution is performed through
389:, who discussed the idea of using remainder modulo a prime as a hash function. The word "hashing" was first published in an article by Robert Morris. A 2401:—which is identified through maintaining a threshold loop counter—both hash tables get rehashed with newer hash functions and the procedure continues. 4939: 5549: 5515: 1785:. Here the index can be computed as some range of bits of the hash function. On the other hand, some hashing algorithms prefer to have the size be a 657: 2346:
is a hybrid of both separate chaining and open addressing in which the buckets or nodes link within the table. The algorithm is ideally suited for
2992:
Repeated insertions cause the number of entries in a hash table to grow, which consequently increases the load factor; to maintain the amortized
4509: 623:
Hash tables are also commonly used to implement sets, by omitting the stored value for each key and merely tracking whether the key is present.
6079: 6072: 5766: 2569:
formation in the hash table. Each node within the hash table that uses Robin Hood hashing should be augmented to store an extra PSL value. Let
5948: 3025:
into the buckets of the new hash table, since the items cannot be copied over as varying table sizes results in different hash value due to
6792: 5736: 1774: 5655: 3280: 2264:
The performance of open addressing may be slower compared to separate chaining since the probe sequence increases when the load factor
823:. This helps maintain good performance. Therefore, a common approach is to resize or "rehash" the hash table whenever the load factor 6468: 5588: 6297: 3809: 5446: 4261: 352: 5999: 4833: 2553:(PSL)—from its "home location" i.e. the bucket to which the item was hashed into. Although Robin Hood hashing does not change the 6271: 3951:
to a string. Aside from the seven "primitive" data types, every value in JavaScript is an object. ECMAScript 2015 also added the
260:, where the hash function generates the same index for more than one key, therefore typically must be accommodated in some way. 4121: 2397:
table. The process continues until every key has its own spot in the empty buckets of the tables; if the procedure enters into
1468: 6762: 6361: 6169: 5693: 5651: 5432: 5395: 5351: 5301: 5208: 5159: 5119: 5104: 5087: 4986: 4911: 4741: 4733: 4471: 4413: 4367: 4342: 4296: 4233: 4186: 3685: 2160:—when the nodes of the linked list are scattered across memory, thus the list traversal during insert and search may entail 6826: 2537:-1, subsequent swap and hop-info bit array manipulation of each bucket is performed in accordance with its neighbourhood 2234:. When a new entry has to be inserted, the buckets are examined, starting with the hashed-to slot and proceeding in some 3021:
performance of the lookup and insertion operations, a hash table is dynamically resized and the items of the tables are
6046: 5925: 5724: 4206: 3226: 356: 6249: 5825: 5005:(2000). "Examining computational geometry, van Emde Boas trees, and hashing from the perspective of the fusion tree". 6701: 5263: 5043:
Askitis, Nikolas; Sinha, Ranjan (October 2010). "Engineering scalable, cache and space efficient tries for strings".
4668: 4632: 2001: 617: 17: 3181: 3136: 3508:
is an implementation of the hash table which enables dynamic growths or shrinks of the table one bucket at a time.
6425: 6215: 6021: 1032: 6491: 6133: 3029:. If a hash table becomes "too empty" after deleting some elements, resizing may be performed to avoid excessive 2554: 2297: 1769: 6496: 4064: 913:
With separate chaining hash tables, each slot of the bucket array stores a pointer to a list or array of data.
5070:
Askitis, Nikolas; Zobel, Justin (October 2005). "Cache-conscious Collision Resolution in String Hash Tables".
2179:
is used in the place where a linked list or self-balancing binary search trees is usually deployed, since the
6461: 4013: 3612: 6570: 5538: 4928: 2188: 1283: 5507: 5072:
Proceedings of the 12th International Conference, String Processing and Information Retrieval (SPIRE 2005)
4665:
Algorithms—ESA 2009: 17th Annual European Symposium, Copenhagen, Denmark, September 7–9, 2009, Proceedings
6575: 6558: 4037: 4027: 3988: 3936:
Many programming languages provide hash table functionality, either as built-in associative arrays or as
2688: 1114: 2756: 2312:
Since the slots are located in successive locations, linear probing could lead to better utilization of
6831: 6774: 6541: 6536: 5777: 5246: 4969:
Culpepper, J. Shane; Moffat, Alistair (2005). "Enhanced Byte Codes with Restricted Prefix Properties".
4727: 4328: 4176: 1997: 873: 35: 4534: 4501: 3846:
Hash tables are commonly used to implement many types of in-memory tables. They are used to implement
3419: 3349: 6531: 5007: 4210: 3974: 3059: 3042: 2451: 2168: 2149: 1205: 994: 922: 846: 799: 6083: 3101: 3074: 6565: 6524: 6454: 6353: 5614: 5334: 5191: 4677: 4334: 3517: 2562: 2293: 406: 320: 222: 3125:. The process of rehashing a bucket's items in accordance with the new hash function is termed as 409:
of (key, value) pairs and allows insertion, deletion, and lookup (search), with the constraint of
6805: 6782: 5751: 5293: 2538: 2289: 2049: 2011: 1450: 1390: 62: 5713: 6787: 6587: 5955: 5424: 5329: 5186: 4672: 4101: 4091: 3813: 3067: 3063: 580: 390: 367: 6713: 6668: 6630: 5644: 4126: 3963: 3665: 3523: 2436: 2317: 2267: 2220: 2157: 2102: 2005: 1805: 1314: 1287: 971: 826: 779: 756: 637: 476: 253: 6345: 4936:
6.897: Advanced Data Structures. MIT Computer Science and Artificial Intelligence Laboratory
3928:
to a complex Hash Table which stores information about each section that has been searched.
1541: 1364: 1175: 6653: 6178: 5821: 5233: 5028: 4715: 4694: 4377: 4316: 4249: 4164: 2592: 2432: 2108: 6191: 6164: 5575: 3782: 3583: 3516:
The performance of a hash table is dependent on the hash function's ability in generating
2995: 2370: 2055: 1823:
A search algorithm that uses hashing consists of two parts. The first part is computing a
8: 6371:
McKenzie, B. J.; Harries, R.; Bell, T. (February 1990). "Selecting a hashing algorithm".
6346: 4136: 4021: 3982: 3925: 3919: 3342:
such that each element in the bucket gets rehashed and its procedure involve as follows:
2935: 1977: 382: 276: 265: 46: 6182: 5415: 5286: 4837: 4253: 2961: 2910: 2505: 2481: 2140:
for each buckets also result in constant time for all operations with high probability.
6696: 6681: 6546: 6506: 6398: 6344:
Tamassia, Roberto; Goodrich, Michael T. (2006). "Chapter Nine: Maps and Dictionaries".
6196: 5991: 5898: 5670: 5621: 5584: 5545: 5511: 5488: 4811: 4638: 4564: 4505: 4096: 4086: 3907: 3901: 3563: 3543: 2881: 2861: 2841: 2821: 2664: 2644: 2624: 2572: 2461: 2084: 1887: 1867: 1860: 1798: 1736: 1716: 1696: 1672: 1567: 1521: 1344: 1338: 1320: 1296: 1265: 1094: 957:
The performance of open addressing becomes very bad when the load factor approaches 1.
732: 710: 560: 522: 502: 456: 436: 416: 375: 269: 214: 4598: 6615: 6514: 6357: 6200: 5971: 5902: 5689: 5492: 5438: 5428: 5391: 5347: 5297: 5259: 5204: 5155: 5115: 5083: 4982: 4907: 4877: 4860: 4737: 4628: 4467: 4409: 4338: 4292: 4229: 4182: 3889: 3883: 3847: 3841: 2526: 2415: 2410: 2343: 2338: 2251: 2184: 2052:, two-level hash tables are used to reduce the look-up complexity to be a guaranteed 1446: 402: 316: 308: 300: 210: 68: 6402: 4568: 3041:
Generally, a new hash table with a size double that of the original hash table gets
2214: 1713:
is the size of the table. An advantage of the hashing by multiplication is that the
6638: 6388: 6380: 6186: 5890: 5728: 5480: 5383: 5339: 5229: 5196: 5075: 5052: 5016: 4974: 4872: 4803: 4773: 4719: 4711: 4682: 4642: 4620: 4594: 4556: 4459: 4401: 4320: 4312: 4221: 4168: 4160: 4007: 3968: 3937: 3863: 3339: 3055: 3030: 3026: 2566: 2301: 2153: 1818: 348: 158: 5125: 1433:. A perfect hash function can be created if all the keys are known ahead of time. 303:
lookup structure. For this reason, they are widely used in many kinds of computer
6658: 6600: 6420: 5859: 5387: 5024: 4897: 4690: 4686: 4585:
Owolabi, Olumide (February 2003). "Empirical studies of some hashing functions".
4111: 3948: 3867: 3130: 2327: 2227: 2200: 1793: 613: 343:
was proposed by A. D. Linh, building on Luhn's memorandum. Around the same time,
340: 332: 280: 87: 4225: 2260:, in which the interval between probes is computed by a secondary hash function. 1904:
be the hash table and the node respectively, the operation involves as follows:
6750: 6728: 6553: 6477: 5241: 4791: 4723: 4657: 4619:. 2006 IEEE International Symposium on Information Theory. pp. 2774–2778. 4324: 4172: 4131: 3505: 3500: 2750:: the iteration goes into the next bucket without attempting an external probe. 2454:
of the item which was originally hashed into the current virtual bucket within
2423: 2419: 2364: 2359: 2321: 2257: 2245: 1454: 312: 257: 206: 91: 5484: 5056: 5020: 4777: 2442:
Each bucket within the hash table includes an additional "hop-information"—an
2205: 1847: 1839: 753:
The performance of the hash table deteriorates in relation to the load factor
331:
The idea of hashing arose independently in different places. In January 1953,
295:
In many situations, hash tables turn out to be on average more efficient than
189: 6820: 6723: 6620: 6605: 5921: 5894: 5343: 5200: 4624: 4202: 4106: 2398: 2367:
is a form of open addressing collision resolution technique which guarantees
2285: 2172: 1824: 1027: 371: 289: 285: 226: 6348:
Data structures and algorithms in Java : [updated for Java 5.0]
6322: 5917: 5810: 5442: 5112:
Proceedings of the 32nd Australasian Computer Science Conference (ACSC 2009)
2288:
if the load factor reaches 1, in the case of a completely filled table. The
1973: 6384: 6245: 5378:
Herlihy, Maurice; Shavit, Nir; Tzafrir, Moran (2008). "Hopscotch Hashing".
4757: 4280: 4081: 1786: 1782: 1758: 1754: 386: 360: 4560: 4463: 4405: 3779:, which is dealt with in a variety of ways. The constant time complexity ( 1851:
Hash collision by separate chaining with head records in the bucket array.
374:
independently had the same idea. The term "open addressing" was coined by
6718: 6643: 5851: 5817: 5712:
Friedman, Scott; Krishnan, Anand; Leidefrost, Nicholas (March 18, 2003).
5321: 5307: 5255: 5178: 5002: 4656:
Belazzougui, Djamal; Botelho, Fabiano C.; Dietzfelbinger, Martin (2009).
4181:(3rd ed.). Massachusetts Institute of Technology. pp. 253–280. 3817: 2347: 2137: 1993: 1981: 1856: 1828: 1690: 870:. Similarly the table may also be resized if the load factor drops below 344: 296: 6216:"Ruby 2.4 Released: Faster Hashes, Unified Integers and Better Rounding" 5079: 4901: 6706: 5382:. Lecture Notes in Computer Science. Vol. 5218. pp. 350–364. 5328:. Lecture Notes in Computer Science. Vol. 2161. pp. 121–133. 5237: 5185:. Lecture Notes in Computer Science. Vol. 2161. pp. 121–133. 4978: 4815: 3944: 3859: 1662:{\displaystyle h(x)=\lfloor m{\bigl (}(MA){\bmod {1}}{\bigr )}\rfloor } 1259: 410: 218: 6393: 2223:, though as the table gets full, its performance degrades drastically. 1198:. The conventional implementations of hash functions are based on the 370:. Open addressing with linear probing is credited to Amdahl, although 6648: 6595: 6429: 5732: 5251: 5150:
Tenenbaum, Aaron M.; Langsam, Yedidyah; Augenstein, Moshe J. (1990).
4861:"New hash functions and their use in authentication and set equality" 2525:
is empty, the element is inserted, and the leftmost bit of bitmap is
2447: 2418:
is an open addressing based algorithm which combines the elements of
2313: 2304:, since formation of clusters would result in increased search time. 2176: 2161: 378:
on his article which discusses the problem of search in large files.
213:, also called a dictionary or simply map; an associative array is an 198: 31: 6108: 4973:. Lecture Notes in Computer Science. Vol. 3772. pp. 1–12. 4807: 4761: 4376:. Vol. 1 (4 ed.). Addison-Wesley Professional – via 4254:"Lecture 13: Amortized Algorithms, Table Doubling, Potential Method" 654:
is a critical statistic of a hash table, and is defined as follows:
6745: 6691: 6519: 4116: 3821: 3609:
denotes the key, number of buckets and the hash function such that
2558: 413:. In the hash table implementation of associative arrays, an array 304: 6446: 4371: 3332:{\displaystyle \mathrm {Lookup} (\mathrm {key} ,{\text{command}})} 339:
memorandum that used hashing with chaining. The first example of
6740: 6686: 3958: 1984:, it results in faster termination of the unsuccessful searches. 616:
bounds on search, delete, and insert operations in comparison to
393:
of linear probing was submitted originally by Konheim and Weiss.
364: 6134:"Lesson: Implementations (The Java™ Tutorials > Collections)" 4903:
The Art of Computer Programming: Volume 3: Sorting and Searching
4655: 4547:
Maurer, W. D.; Lewis, T. G. (March 1975). "Hash Table Methods".
4454:
Mehta, Dinesh P.; Mehta, Dinesh P.; Sahni, Sartaj, eds. (2004).
6735: 6676: 4068: 3871: 2148:
The linked list of separate chaining implementation may not be
697:{\displaystyle {\text{load factor}}\ (\alpha )={\frac {n}{m}},} 6022:"JavaScript data types and data structures - JavaScript | MDN" 3816:
the indices. However, construction of such a hash function is
2328:
Other collision resolution techniques based on open addressing
1987: 1640: 1498: 2292:
of linear probing depends on the hash function's ability to
2248:, in which the interval between probes is fixed (usually 1). 1457:. However, hashing by division is the commonly used scheme. 991:
With open addressing, acceptable figures of max load factor
6757: 6416: 4052: 5767:"Linear hashing: A new tool for file and table addressing" 5711: 5228: 5149: 4710: 4311: 4159: 2191:—resulting in reduced access time and memory consumption. 946:
that gives best performance is typically between 1 and 3.
336: 3955:
data structure, which accepts arbitrary values as keys.
3049: 1445:
include hashing by division, hashing by multiplication,
612:. Under reasonable assumptions, hash tables have better 3967:
in its standard library for storing keys and values of
3768:{\displaystyle K_{1}\neq K_{2},\ h(K_{1})\ =\ h(K_{2})} 2983:; repeat the procedure until every element is inserted. 1592:
The scheme in hashing by multiplication is as follows:
1111:
of keys to indices or slots within the table, that is,
5539:"JavaHyperText and Data Structure: Robin Hood Hashing" 4671:. Vol. 5757. Berlin: Springer. pp. 682–693. 4034:
uses the open addressing model from Ruby 2.4 onwards.
2307: 1855:
In separate chaining, the process involves building a
1202:
that all elements of the table stem from the universe
6165:"Redis rehash optimization based on machine learning" 3785: 3688: 3668: 3615: 3586: 3566: 3546: 3526: 3422: 3352: 3283: 3229: 3184: 3139: 3104: 3077: 2998: 2964: 2938: 2913: 2884: 2864: 2844: 2824: 2759: 2691: 2681:
be the index, the insertion procedure is as follows:
2667: 2647: 2627: 2595: 2575: 2508: 2484: 2464: 2373: 2270: 2171:
of collision resolution through separate chaining, a
2111: 2087: 2081:
in the worst case. In this technique, the buckets of
2058: 2014: 1890: 1870: 1739: 1719: 1699: 1675: 1598: 1570: 1544: 1524: 1471: 1393: 1367: 1347: 1323: 1299: 1268: 1208: 1178: 1117: 1097: 1035: 997: 974: 925: 876: 849: 829: 802: 782: 759: 735: 713: 660: 640: 583: 563: 525: 505: 479: 459: 439: 419: 6073:"Programming language C++ - Technical Specification" 5377: 5324:; Rodler, Flemming Friche (2001). "Cuckoo Hashing". 5181:; Rodler, Flemming Friche (2001). "Cuckoo Hashing". 4333:(2nd ed.). MIT Press and McGraw-Hill. pp.  4258:
course MIT 6.046J/18.410J Introduction to Algorithms
2143: 908: 776:
The software typically ensures that the load factor
727:
is the number of entries occupied in the hash table.
6370: 5643:Devadas, Srini; Demaine, Erik (February 25, 2011). 5285: 4615:Lu, Yi; Prabhakar, Balaji; Bonomi, Flavio (2006). 4291:(2nd ed.). Addison-Wesley. pp. 513–558. 3800: 3767: 3674: 3654: 3601: 3572: 3552: 3532: 3475: 3405: 3331: 3269: 3215: 3170: 3117: 3090: 3013: 2975: 2950: 2924: 2899: 2870: 2850: 2830: 2810: 2742: 2673: 2653: 2633: 2613: 2581: 2517: 2493: 2470: 2388: 2276: 2124: 2093: 2073: 2045:, although it introduces additional complexities. 2037: 1896: 1876: 1745: 1725: 1705: 1681: 1661: 1576: 1556: 1530: 1510: 1425: 1379: 1353: 1329: 1305: 1274: 1250: 1190: 1164: 1103: 1083: 1010: 980: 949: 938: 897: 862: 835: 815: 788: 765: 741: 719: 696: 646: 604: 569: 549: 511: 491: 465: 445: 425: 5880: 5856:pl:Polsko-Japońska Akademia Technik Komputerowych 4859:Wegman, Mark N.; Carter, J.Lawrence (June 1981). 4794:(1983). "Karl Pearson and the Chi-Squared Test". 4614: 3906:Hash tables can be used in the implementation of 3270:{\displaystyle \mathrm {Delete} (\mathrm {key} )} 3036: 1809:finding the fastest possible such hash function. 1465:The scheme in hashing by division is as follows: 960:Therefore a hash table that uses open addressing 6818: 6343: 5976:: CS1 maint: bot: original URL status unknown ( 5811:"Analysing and Improving Hash Table Performance" 5714:"Hash Tables for Embedded and Real-time systems" 5684:Thareja, Reema (2014). "Hashing and Collision". 1980:, and inserted into the list by maintaining the 1003: 931: 882: 855: 808: 6298:"Dictionary Class (System.Collections.Generic)" 6213: 5105:"Fast and Compact Hash Tables for Integer Keys" 4968: 4896: 4706: 4704: 4453: 4201: 2565:of the items on the buckets, i.e. dealing with 6426:Open Data Structures – Chapter 5 – Hash Tables 6080:International Organization for Standardization 5642: 4366: 4155: 4153: 3216:{\displaystyle \mathrm {Get} (\mathrm {key} )} 3171:{\displaystyle \mathrm {Add} (\mathrm {key} )} 2435:, thus well suited for implementing resizable 1436: 6462: 6352:(4th ed.). Hoboken, NJ: Wiley. pp.  5992:"Transposition Table - Chessprogramming wiki" 5958:. Archived from the original on April 1, 2022 5721:All Computer Science and Engineering Research 5688:. Oxford University Press. pp. 464–488. 5409: 5407: 1796:schemes, the hash function should also avoid 1651: 1622: 385:work on hashing with chaining is credited to 27:Associative array for storing key-value pairs 6272:"HashSet Class (System.Collections.Generic)" 5849: 5774:Proc. 6th Conference on Very Large Databases 5470: 5288:The design and analysis of coalesced hashing 5069: 5042: 4858: 4701: 4502:"CS 312: Hash tables and amortized analysis" 4456:Handbook of Data Structures and Applications 3054:Some hash table implementations, notably in 2183:pattern of the array could be exploited by 1843:Hash collision resolved by separate chaining 1656: 1614: 1587: 1245: 1215: 1084:{\displaystyle h:U\rightarrow \{0,...,m-1\}} 1078: 1048: 6441:MIT's Introduction to Algorithms: Hashing 2 6435:MIT's Introduction to Algorithms: Hashing 1 6109:"The Go Programming Language Specification" 5946: 5645:"Intro to Algorithms: Resizing Hash Tables" 5284:Vitter, Jeffery S.; Chen, Wen-Chin (1987). 5154:. Prentice Hall. pp. 456–461, p. 472. 5143: 4971:String Processing and Information Retrieval 4926: 4546: 4495: 4493: 4491: 4489: 4487: 4485: 4483: 4449: 4447: 4445: 4150: 4063:, so it can be used from languages such as 3820:, that being so, implementations depend on 1988:Other data structures for separate chaining 1764: 6469: 6455: 5915: 5707: 5705: 5583:(Technical report). Bloomington, Indiana: 5404: 5320: 5283: 5177: 4892: 4890: 4888: 4443: 4441: 4439: 4437: 4435: 4433: 4431: 4429: 4427: 4425: 4362: 4360: 4358: 4356: 4354: 3662:. If the hash function generates the same 6392: 6190: 5804: 5802: 5567: 5499: 5333: 5279: 5277: 5275: 5190: 5173: 5171: 4964: 4962: 4960: 4927:Demaine, Erik; Lind, Jeff (Spring 2003). 4876: 4676: 4391: 4389: 4387: 4248: 4020:implements a hash table in the form of a 3981:implements a hash table in the form of a 3824: 3812:to the chosen hash function's ability to 1511:{\displaystyle h(x)\ =\ x\,{\bmod {\,}}m} 1502: 1496: 6162: 5505: 5473:Combinatorics, Probability and Computing 5373: 5371: 5369: 5367: 5365: 5363: 5074:. Vol. 3772/2005. pp. 91–102. 4790: 4784: 4750: 4617:Perfect Hashing for Network Applications 4580: 4578: 4529: 4527: 4480: 3874:are more popular in these applications. 3133:by encapsulating the operations such as 2284:approaches 1. The probing results in an 2213: 2204: 1846: 1838: 1827:which transforms the search key into an 188: 5702: 5683: 5612: 5587:, Department of Computer Science. 246. 5224: 5222: 5220: 5102: 5001: 4885: 4865:Journal of Computer and System Sciences 4756: 4610: 4608: 4584: 4533:James S. Plank and Brad Vander Zanden. 4422: 4395: 4351: 4275: 4273: 4271: 3655:{\displaystyle \sigma \ =\ h(K)\ \%\ n} 1812: 14: 6819: 6295: 6002:from the original on February 14, 2021 5799: 5764: 5272: 5168: 4957: 4499: 4384: 4048:as part of the Rust Standard Library. 3913: 3540:) for entries in the hash table where 1460: 6450: 6252:from the original on December 8, 2022 6214:Jonan Scheffler (December 25, 2016). 6170:Journal of Physics: Conference Series 6144:from the original on January 18, 2017 5928:from the original on December 4, 2020 5916:Bottommley, James (January 1, 2004). 5831:from the original on November 6, 2021 5652:Massachusetts Institute of Technology 5594:from the original on November 3, 2021 5573: 5536: 5452:from the original on November 1, 2021 5413: 5360: 4827: 4825: 4734:Massachusetts Institute of Technology 4575: 4524: 4305: 4279: 4242: 3888:Hash tables can be used to implement 3835: 3050:Alternatives to all-at-once rehashing 2544: 2426:and chaining through the notion of a 919:With separate chaining, the value of 292:can be used to retrieve the element. 272:constant average cost per operation. 5808: 5518:from the original on October 7, 2021 5217: 4831: 4605: 4268: 4264:from the original on August 7, 2009. 4211:"Hash Tables and Associative Arrays" 3853: 2404: 2332: 2241:Well-known probe sequences include: 1972:If the element is comparable either 1834: 1777:for discrete uniform distributions. 1733:is not critical. Although any value 6476: 5555:from the original on April 26, 2021 4726:(2001). "Chapter 11: Hash Tables". 4649: 4587:Information and Software Technology 4512:from the original on April 26, 2021 4327:(2001). "Chapter 11: Hash Tables". 2987: 2743:{\displaystyle x.psl\ \leq \ T.psl} 2621:be the (incremental) PSL length of 1165:{\displaystyle h(x)\in {0,...,m-1}} 24: 6337: 6082:. pp. 812–813. Archived from 5725:Washington University in St. Louis 5654:, Department of Computer Science. 5548:, Department of Computer Science. 5514:, Department of Computer Science. 5114:. Vol. 91. pp. 113–122. 4945:from the original on June 15, 2010 4822: 4508:, Department of Computer Science. 4122:Rabin–Karp string search algorithm 3991:programming language includes the 3931: 3643: 3463: 3460: 3457: 3436: 3433: 3430: 3427: 3424: 3393: 3390: 3387: 3366: 3363: 3360: 3357: 3354: 3314: 3311: 3308: 3300: 3297: 3294: 3291: 3288: 3285: 3260: 3257: 3254: 3246: 3243: 3240: 3237: 3234: 3231: 3206: 3203: 3200: 3192: 3189: 3186: 3161: 3158: 3155: 3147: 3144: 3141: 2811:{\displaystyle x.psl\ >\ T.psl} 2194: 796:remains below a certain constant, 618:self-balancing binary search trees 252:Most hash table designs employ an 193:A small phone book as a hash table 25: 6843: 6410: 6373:Software: Practice and Experience 6226:from the original on July 3, 2019 6163:Zhang, Juan; Jia, Yunwei (2020). 5754:, Department of Computer Science. 5742:from the original on June 9, 2021 4669:Lecture Notes in Computer Science 4380:, Department of Computer Science. 4195: 3827:in achieving higher performance. 3494: 2353: 2308:Caching and locality of reference 2144:Caching and locality of reference 2002:self-balancing binary search tree 1018:should range around 0.6 to 0.75. 909:Load factor for separate chaining 898:{\displaystyle \alpha _{\max }/4} 519:gets stored at an index location 41:"Rehash" redirects here. For the 5787:from the original on May 6, 2021 5661:from the original on May 7, 2021 4796:International Statistical Review 4535:"CS140 Lecture notes -- Hashing" 3858:Hash tables may also be used as 3476:{\displaystyle \mathrm {Table} } 3406:{\displaystyle \mathrm {Table} } 1996:, it could be efficient to use " 1021: 6315: 6289: 6264: 6238: 6207: 6192:10.1088/1742-6596/1453/1/012048 6156: 6126: 6101: 6065: 6039: 6014: 5984: 5940: 5909: 5874: 5843: 5758: 5677: 5636: 5606: 5574:Celis, Pedro (March 28, 1988). 5530: 5464: 5314: 5096: 5063: 5036: 4995: 4920: 4906:. Addison-Wesley Professional. 4852: 4540: 4285:The Art of Computer Programming 3830: 3825:collision resolution techniques 3129:, which is implemented through 2557:, it significantly affects the 1441:The schemes of hashing used in 1251:{\displaystyle U=\{0,...,u-1\}} 1011:{\displaystyle \alpha _{\max }} 950:Load factor for open addressing 939:{\displaystyle \alpha _{\max }} 863:{\displaystyle \alpha _{\max }} 816:{\displaystyle \alpha _{\max }} 5852:"Indexes and external sorting" 4658:"Hash, displace, and compress" 4218:Algorithms and Data Structures 4040:programming language includes 3795: 3789: 3762: 3749: 3734: 3721: 3637: 3631: 3596: 3590: 3511: 3470: 3467: 3453: 3440: 3400: 3397: 3383: 3370: 3326: 3304: 3264: 3250: 3210: 3196: 3165: 3151: 3118:{\displaystyle h_{\text{new}}} 3091:{\displaystyle h_{\text{old}}} 3037:Resizing by moving all entries 3008: 3002: 2932:; continue the probe from the 2894: 2888: 2793: 2787: 2725: 2719: 2383: 2377: 2300:throughout the table to avoid 2068: 2062: 2032: 2018: 1938:search for an element with key 1636: 1627: 1608: 1602: 1481: 1475: 1127: 1121: 1045: 675: 669: 626: 593: 587: 544: 541: 535: 529: 13: 1: 5427:, Dept. of Computer Science. 4599:10.1016/S0950-5849(02)00174-X 4143: 3066:due to deallocation of large 1387:maps to a different value in 5388:10.1007/978-3-540-87779-0_24 4878:10.1016/0022-0000(81)90033-7 4687:10.1007/978-3-642-04128-0_61 4220:. Springer. pp. 81–98. 2189:translation lookaside buffer 363:implemented hashing for the 7: 6793:Directed acyclic word graph 6559:Double-ended priority queue 5577:External Robin Hood Hashing 5563:– via cs.cornell.edu. 5526:– via cs.cornell.edu. 5292:. New York, United States: 4832:Wang, Thomas (March 1997). 4520:– via cs.cornell.edu. 4398:Hashing in Computer Science 4226:10.1007/978-3-540-77978-0_4 4074: 3862:-based data structures and 2589:be the key to be inserted, 2038:{\displaystyle O(\log {n})} 2000:" concepts such as using a 1443:integer universe assumption 1437:Integer universe assumption 1426:{\displaystyle {0,...,m-1}} 1361:, that is, if each element 1200:integer universe assumption 396: 275:Hashing is an example of a 10: 6848: 6827:Hash-based data structures 5778:Carnegie Mellon University 5506:Clarkson, Michael (2014). 5247:Introduction to Algorithms 5244:(2001), "11 Hash Tables", 4729:Introduction to Algorithms 4330:Introduction to Algorithms 4178:Introduction to Algorithms 4055:standard library includes 3917: 3899: 3881: 3839: 3498: 2408: 2357: 2336: 2198: 2185:hardware-cache prefetchers 1923:at the head of linked list 1816: 1775:Pearson's chi-squared test 1753:produces a hash function, 1584:is the size of the table. 326: 40: 29: 6801: 6773: 6667: 6629: 6586: 6505: 6484: 5615:"Chapter C5: Hash Tables" 5508:"Lecture 13: Hash tables" 5485:10.1017/S0963548318000408 5103:Askitis, Nikolas (2009). 5057:10.1007/s00778-010-0183-9 5021:10.1137/S0097539797322425 5008:SIAM Journal on Computing 4834:"Prime Double Hash Table" 4778:10.1080/14786440009463897 4396:Konheim, Alan G. (2010). 3877: 2136:Techniques such as using 2101:entries are organized as 2008:could be brought down to 1588:Hashing by multiplication 749:is the number of buckets. 605:{\displaystyle h(x)<m} 453:is partially filled with 164: 157: 142: 127: 112: 97: 86: 82: 74: 61: 56: 6525:Retrieval Data Structure 6323:"VB.NET HashSet Example" 6047:"Map - JavaScript | MDN" 5895:10.23919/jcc.2020.02.018 5344:10.1007/3-540-44676-1_10 5201:10.1007/3-540-44676-1_10 4625:10.1109/ISIT.2006.261567 2169:cache-conscious variants 1765:Choosing a hash function 577:is a hash function, and 30:Not to be confused with 6806:List of data structures 6783:Binary decision diagram 5949:"Set & Hash Tables" 5918:"Understanding Caching" 5795:– via cs.cmu.edu. 5765:Litwin, Witold (1980). 5752:Northwestern University 5686:Data Structures Using C 5613:Goddard, Wayne (2021). 5294:Oxford University Press 5152:Data Structures Using C 4500:Mayers, Andrew (2008). 4370:; Wayne, Kevin (2011). 3895: 3675:{\displaystyle \sigma } 3533:{\displaystyle \sigma } 2555:theoretical search cost 2348:fixed memory allocation 2277:{\displaystyle \alpha } 2050:dynamic perfect hashing 1451:dynamic perfect hashing 1282:is confined within the 981:{\displaystyle \alpha } 836:{\displaystyle \alpha } 789:{\displaystyle \alpha } 766:{\displaystyle \alpha } 647:{\displaystyle \alpha } 492:{\displaystyle m\geq n} 254:imperfect hash function 6788:Directed acyclic graph 6385:10.1002/spe.4380200207 5956:Texas State University 5809:Dijk, Tom Van (2010). 5425:University of Waterloo 4766:Philosophical Magazine 4102:Hash array mapped trie 4092:Distributed hash table 3818:practically infeasible 3802: 3769: 3676: 3656: 3603: 3574: 3554: 3534: 3477: 3407: 3333: 3271: 3217: 3172: 3119: 3092: 3015: 2977: 2952: 2926: 2901: 2872: 2852: 2832: 2812: 2744: 2675: 2661:be the hash table and 2655: 2635: 2615: 2583: 2519: 2495: 2472: 2390: 2318:locality of references 2278: 2224: 2211: 2126: 2095: 2075: 2039: 2006:theoretical worst case 1898: 1878: 1852: 1844: 1747: 1727: 1707: 1683: 1663: 1578: 1558: 1557:{\displaystyle x\in S} 1538:is the hash digest of 1532: 1512: 1455:static perfect hashing 1427: 1381: 1380:{\displaystyle x\in S} 1355: 1331: 1307: 1276: 1252: 1192: 1191:{\displaystyle x\in U} 1166: 1105: 1085: 1012: 982: 940: 899: 864: 837: 817: 790: 767: 743: 721: 698: 648: 606: 571: 551: 513: 493: 467: 447: 427: 225:. A hash table uses a 194: 6443:MIT OCW lecture Video 6437:MIT OCW lecture Video 6051:developer.mozilla.org 6026:developer.mozilla.org 5537:Gries, David (2017). 5414:Celis, Pedro (1986). 5380:Distributed Computing 5326:Algorithms — ESA 2001 5234:Leiserson, Charles E. 5183:Algorithms — ESA 2001 4716:Leiserson, Charles E. 4561:10.1145/356643.356645 4549:ACM Computing Surveys 4464:10.1201/9781420035179 4406:10.1002/9780470630617 4317:Leiserson, Charles E. 4289:Sorting and Searching 4250:Leiserson, Charles E. 4165:Leiserson, Charles E. 4127:Search data structure 3810:directly proportional 3803: 3770: 3677: 3657: 3604: 3575: 3555: 3535: 3478: 3408: 3334: 3272: 3218: 3173: 3120: 3093: 3016: 2978: 2953: 2927: 2902: 2873: 2853: 2833: 2813: 2745: 2676: 2656: 2636: 2616: 2614:{\displaystyle x.psl} 2584: 2551:probe sequence length 2520: 2496: 2473: 2437:concurrent hash table 2391: 2320:resulting in reduced 2279: 2221:locality of reference 2217: 2208: 2181:contiguous allocation 2158:locality of reference 2127: 2125:{\displaystyle k^{2}} 2096: 2076: 2040: 1899: 1879: 1850: 1842: 1806:K-independent hashing 1748: 1728: 1708: 1684: 1664: 1579: 1559: 1533: 1513: 1428: 1382: 1356: 1332: 1308: 1288:computer architecture 1277: 1253: 1193: 1167: 1106: 1086: 1013: 983: 941: 900: 865: 838: 818: 791: 768: 744: 722: 699: 649: 607: 572: 552: 514: 494: 468: 448: 428: 192: 6654:Unrolled linked list 5996:chessprogramming.org 5947:Jill Seaman (2014). 5883:China Communications 5822:University of Twente 5780:. pp. 212–223. 5258:, pp. 221–252, 5131:on February 16, 2011 4840:on September 3, 1999 4378:Princeton University 3801:{\displaystyle O(1)} 3783: 3686: 3666: 3613: 3602:{\displaystyle h(x)} 3584: 3564: 3544: 3524: 3518:quasi-random numbers 3420: 3350: 3281: 3227: 3182: 3137: 3102: 3075: 3060:memory fragmentation 3014:{\displaystyle O(1)} 2996: 2962: 2958:st bucket to insert 2936: 2911: 2882: 2862: 2842: 2822: 2757: 2689: 2665: 2645: 2625: 2593: 2573: 2539:invariant properties 2506: 2482: 2462: 2389:{\displaystyle O(1)} 2371: 2268: 2109: 2085: 2074:{\displaystyle O(1)} 2056: 2012: 2004:, through which the 1965:from the linked list 1949:Chained-Hash-Delete( 1928:Chained-Hash-Search( 1907:Chained-Hash-Insert( 1888: 1868: 1813:Collision resolution 1770:Uniform distribution 1737: 1717: 1697: 1691:real-valued constant 1673: 1596: 1568: 1542: 1522: 1469: 1391: 1365: 1345: 1321: 1297: 1266: 1206: 1176: 1115: 1095: 1033: 995: 972: 923: 874: 847: 827: 800: 780: 757: 733: 711: 658: 638: 581: 561: 523: 503: 477: 457: 437: 417: 391:theoretical analysis 6702:Self-balancing tree 6302:learn.microsoft.com 6276:learn.microsoft.com 6246:"doc.rust-lang.org" 6183:2020JPhCS1453a2048Z 6089:on January 21, 2022 5423:. Ontario, Canada: 5080:10.1007/11575832_11 4137:Succinct hash table 3926:transposition table 3920:Transposition table 3914:Transposition table 3775:), this results in 3682:for distinct keys ( 2951:{\displaystyle j+1} 2450:for indicating the 2433:concurrent settings 2103:perfect hash tables 1757:suggests using the 1461:Hashing by division 968:if the load factor 353:Nathaniel Rochester 307:, particularly for 277:space-time tradeoff 237:, into an array of 209:that implements an 47:Rehash (South Park) 6682:Binary search tree 6547:Double-ended queue 5850:Lech Banachowski. 5671:MIT OpenCourseWare 5622:Clemson University 5585:Indiana University 5546:Cornell University 5512:Cornell University 5417:Robin Hood Hashing 4979:10.1007/11575832_1 4900:(April 24, 1998). 4506:Cornell University 4097:Extendible hashing 4087:Consistent hashing 3908:set data structure 3902:Set data structure 3848:associative arrays 3836:Associative arrays 3798: 3765: 3672: 3652: 3599: 3570: 3550: 3530: 3473: 3403: 3329: 3267: 3213: 3168: 3115: 3088: 3011: 2976:{\displaystyle x'} 2973: 2948: 2925:{\displaystyle x'} 2922: 2897: 2868: 2848: 2828: 2818:: insert the item 2808: 2740: 2671: 2651: 2631: 2611: 2579: 2545:Robin Hood hashing 2518:{\displaystyle Bk} 2515: 2494:{\displaystyle Bk} 2491: 2468: 2386: 2274: 2225: 2212: 2122: 2091: 2071: 2035: 1894: 1874: 1853: 1845: 1743: 1723: 1703: 1679: 1659: 1574: 1554: 1528: 1508: 1423: 1377: 1351: 1327: 1303: 1272: 1248: 1188: 1162: 1101: 1091:maps the universe 1081: 1008: 978: 936: 895: 860: 833: 813: 786: 763: 739: 717: 694: 644: 602: 567: 547: 509: 489: 463: 443: 423: 376:W. Wesley Peterson 335:wrote an internal 309:associative arrays 215:abstract data type 195: 6832:1953 in computing 6814: 6813: 6616:Hashed array tree 6515:Associative array 6363:978-0-471-73884-8 5862:on March 26, 2022 5695:978-0-19-809930-7 5434:978-0-315-29700-5 5397:978-3-540-87778-3 5353:978-3-540-42493-2 5303:978-0-19-504182-8 5238:Rivest, Ronald L. 5230:Cormen, Thomas H. 5210:978-3-540-42493-2 5161:978-0-13-199746-2 5121:978-1-920682-72-9 5089:978-3-540-29740-6 4988:978-3-540-29740-6 4913:978-0-201-89685-5 4743:978-0-262-53196-2 4720:Rivest, Ronald L. 4712:Cormen, Thomas H. 4473:978-0-429-14701-2 4415:978-0-470-34473-6 4368:Sedgewick, Robert 4344:978-0-262-53196-2 4321:Rivest, Ronald L. 4313:Cormen, Thomas H. 4298:978-0-201-89685-5 4235:978-3-540-77977-3 4188:978-0-262-03384-8 4169:Rivest, Ronald L. 4161:Cormen, Thomas H. 3884:Cache (computing) 3854:Database indexing 3842:Associative array 3745: 3739: 3717: 3648: 3642: 3627: 3621: 3573:{\displaystyle n} 3553:{\displaystyle K} 3450: 3380: 3324: 3112: 3085: 3056:real-time systems 2900:{\displaystyle T} 2871:{\displaystyle x} 2851:{\displaystyle j} 2831:{\displaystyle x} 2783: 2777: 2715: 2709: 2674:{\displaystyle j} 2654:{\displaystyle T} 2634:{\displaystyle x} 2582:{\displaystyle x} 2471:{\displaystyle k} 2452:relative distance 2416:Hopscotch hashing 2411:Hopscotch hashing 2405:Hopscotch hashing 2344:Coalesced hashing 2339:Coalesced hashing 2333:Coalesced hashing 2252:Quadratic probing 2175:found to be more 2094:{\displaystyle k} 1897:{\displaystyle x} 1877:{\displaystyle T} 1835:Separate chaining 1746:{\displaystyle A} 1726:{\displaystyle m} 1706:{\displaystyle m} 1682:{\displaystyle A} 1577:{\displaystyle m} 1531:{\displaystyle M} 1492: 1486: 1447:universal hashing 1354:{\displaystyle S} 1330:{\displaystyle S} 1306:{\displaystyle h} 1275:{\displaystyle u} 1104:{\displaystyle U} 742:{\displaystyle m} 720:{\displaystyle n} 689: 668: 664: 570:{\displaystyle h} 550:{\displaystyle A} 512:{\displaystyle x} 466:{\displaystyle n} 446:{\displaystyle m} 426:{\displaystyle A} 403:associative array 313:database indexing 211:associative array 187: 186: 183: 182: 69:associative array 18:Separate chaining 16:(Redirected from 6839: 6639:Association list 6471: 6464: 6457: 6448: 6447: 6406: 6396: 6367: 6351: 6331: 6330: 6319: 6313: 6312: 6310: 6308: 6293: 6287: 6286: 6284: 6282: 6268: 6262: 6261: 6259: 6257: 6242: 6236: 6235: 6233: 6231: 6211: 6205: 6204: 6194: 6160: 6154: 6153: 6151: 6149: 6130: 6124: 6123: 6121: 6119: 6105: 6099: 6098: 6096: 6094: 6088: 6077: 6069: 6063: 6062: 6060: 6058: 6043: 6037: 6036: 6034: 6032: 6018: 6012: 6011: 6009: 6007: 5988: 5982: 5981: 5975: 5967: 5965: 5963: 5953: 5944: 5938: 5937: 5935: 5933: 5913: 5907: 5906: 5878: 5872: 5871: 5869: 5867: 5858:. Archived from 5847: 5841: 5840: 5838: 5836: 5830: 5815: 5806: 5797: 5796: 5794: 5792: 5786: 5771: 5762: 5756: 5755: 5749: 5747: 5741: 5733:10.7936/K7WD3XXV 5718: 5709: 5700: 5699: 5681: 5675: 5674: 5668: 5666: 5660: 5649: 5640: 5634: 5633: 5631: 5629: 5624:. pp. 15–16 5619: 5610: 5604: 5603: 5601: 5599: 5593: 5582: 5571: 5565: 5564: 5562: 5560: 5554: 5543: 5534: 5528: 5527: 5525: 5523: 5503: 5497: 5496: 5468: 5462: 5461: 5459: 5457: 5451: 5422: 5411: 5402: 5401: 5375: 5358: 5357: 5337: 5318: 5312: 5311: 5291: 5281: 5270: 5268: 5250:(2nd ed.), 5226: 5215: 5214: 5194: 5175: 5166: 5165: 5147: 5141: 5140: 5138: 5136: 5130: 5124:. Archived from 5109: 5100: 5094: 5093: 5067: 5061: 5060: 5045:The VLDB Journal 5040: 5034: 5032: 5015:(3): 1030–1049. 4999: 4993: 4992: 4966: 4955: 4954: 4952: 4950: 4944: 4933: 4924: 4918: 4917: 4894: 4883: 4882: 4880: 4856: 4850: 4849: 4847: 4845: 4836:. Archived from 4829: 4820: 4819: 4788: 4782: 4781: 4772:(302): 157–175. 4754: 4748: 4747: 4732:(2nd ed.). 4708: 4699: 4698: 4680: 4662: 4653: 4647: 4646: 4612: 4603: 4602: 4582: 4573: 4572: 4544: 4538: 4531: 4522: 4521: 4519: 4517: 4497: 4478: 4477: 4451: 4420: 4419: 4393: 4382: 4381: 4364: 4349: 4348: 4309: 4303: 4302: 4277: 4266: 4265: 4246: 4240: 4239: 4215: 4199: 4193: 4192: 4157: 4062: 4058: 4047: 4043: 4033: 4019: 4006: 4002: 3998: 3994: 3980: 3966: 3954: 3938:standard library 3864:database indices 3807: 3805: 3804: 3799: 3774: 3772: 3771: 3766: 3761: 3760: 3743: 3737: 3733: 3732: 3715: 3711: 3710: 3698: 3697: 3681: 3679: 3678: 3673: 3661: 3659: 3658: 3653: 3646: 3640: 3625: 3619: 3608: 3606: 3605: 3600: 3579: 3577: 3576: 3571: 3559: 3557: 3556: 3551: 3539: 3537: 3536: 3531: 3482: 3480: 3479: 3474: 3466: 3452: 3451: 3448: 3439: 3412: 3410: 3409: 3404: 3396: 3382: 3381: 3378: 3369: 3338: 3336: 3335: 3330: 3325: 3322: 3317: 3303: 3276: 3274: 3273: 3268: 3263: 3249: 3222: 3220: 3219: 3214: 3209: 3195: 3177: 3175: 3174: 3169: 3164: 3150: 3124: 3122: 3121: 3116: 3114: 3113: 3110: 3097: 3095: 3094: 3089: 3087: 3086: 3083: 3027:modulo operation 3020: 3018: 3017: 3012: 2988:Dynamic resizing 2982: 2980: 2979: 2974: 2972: 2957: 2955: 2954: 2949: 2931: 2929: 2928: 2923: 2921: 2906: 2904: 2903: 2898: 2877: 2875: 2874: 2869: 2857: 2855: 2854: 2849: 2838:into the bucket 2837: 2835: 2834: 2829: 2817: 2815: 2814: 2809: 2781: 2775: 2749: 2747: 2746: 2741: 2713: 2707: 2680: 2678: 2677: 2672: 2660: 2658: 2657: 2652: 2640: 2638: 2637: 2632: 2620: 2618: 2617: 2612: 2588: 2586: 2585: 2580: 2524: 2522: 2521: 2516: 2500: 2498: 2497: 2492: 2477: 2475: 2474: 2469: 2458:-1 entries. Let 2395: 2393: 2392: 2387: 2283: 2281: 2280: 2275: 2164:inefficiencies. 2154:spatial locality 2131: 2129: 2128: 2123: 2121: 2120: 2100: 2098: 2097: 2092: 2080: 2078: 2077: 2072: 2044: 2042: 2041: 2036: 2031: 1992:If the keys are 1903: 1901: 1900: 1895: 1883: 1881: 1880: 1875: 1819:2-choice hashing 1752: 1750: 1749: 1744: 1732: 1730: 1729: 1724: 1712: 1710: 1709: 1704: 1688: 1686: 1685: 1680: 1668: 1666: 1665: 1660: 1655: 1654: 1648: 1647: 1626: 1625: 1583: 1581: 1580: 1575: 1563: 1561: 1560: 1555: 1537: 1535: 1534: 1529: 1517: 1515: 1514: 1509: 1504: 1503: 1490: 1484: 1432: 1430: 1429: 1424: 1422: 1386: 1384: 1383: 1378: 1360: 1358: 1357: 1352: 1336: 1334: 1333: 1328: 1317:for a given set 1312: 1310: 1309: 1304: 1293:A hash function 1281: 1279: 1278: 1273: 1257: 1255: 1254: 1249: 1197: 1195: 1194: 1189: 1171: 1169: 1168: 1163: 1161: 1110: 1108: 1107: 1102: 1090: 1088: 1087: 1082: 1017: 1015: 1014: 1009: 1007: 1006: 987: 985: 984: 979: 945: 943: 942: 937: 935: 934: 904: 902: 901: 896: 891: 886: 885: 869: 867: 866: 861: 859: 858: 842: 840: 839: 834: 822: 820: 819: 814: 812: 811: 795: 793: 792: 787: 772: 770: 769: 764: 748: 746: 745: 740: 726: 724: 723: 718: 703: 701: 700: 695: 690: 682: 666: 665: 662: 653: 651: 650: 645: 611: 609: 608: 603: 576: 574: 573: 568: 556: 554: 553: 548: 518: 516: 515: 510: 498: 496: 495: 490: 473:elements, where 472: 470: 469: 464: 452: 450: 449: 444: 432: 430: 429: 424: 349:Elaine M. McGraw 233:, also called a 159:Space complexity 84: 83: 54: 53: 21: 6847: 6846: 6842: 6841: 6840: 6838: 6837: 6836: 6817: 6816: 6815: 6810: 6797: 6769: 6663: 6659:XOR linked list 6625: 6601:Circular buffer 6582: 6501: 6480: 6478:Data structures 6475: 6413: 6364: 6340: 6338:Further reading 6335: 6334: 6321: 6320: 6316: 6306: 6304: 6294: 6290: 6280: 6278: 6270: 6269: 6265: 6255: 6253: 6244: 6243: 6239: 6229: 6227: 6212: 6208: 6161: 6157: 6147: 6145: 6138:docs.oracle.com 6132: 6131: 6127: 6117: 6115: 6107: 6106: 6102: 6092: 6090: 6086: 6075: 6071: 6070: 6066: 6056: 6054: 6053:. June 20, 2023 6045: 6044: 6040: 6030: 6028: 6020: 6019: 6015: 6005: 6003: 5990: 5989: 5985: 5969: 5968: 5961: 5959: 5951: 5945: 5941: 5931: 5929: 5914: 5910: 5879: 5875: 5865: 5863: 5848: 5844: 5834: 5832: 5828: 5813: 5807: 5800: 5790: 5788: 5784: 5769: 5763: 5759: 5745: 5743: 5739: 5716: 5710: 5703: 5696: 5682: 5678: 5664: 5662: 5658: 5647: 5641: 5637: 5627: 5625: 5617: 5611: 5607: 5597: 5595: 5591: 5580: 5572: 5568: 5558: 5556: 5552: 5541: 5535: 5531: 5521: 5519: 5504: 5500: 5469: 5465: 5455: 5453: 5449: 5435: 5420: 5412: 5405: 5398: 5376: 5361: 5354: 5319: 5315: 5304: 5282: 5273: 5266: 5242:Stein, Clifford 5227: 5218: 5211: 5176: 5169: 5162: 5148: 5144: 5134: 5132: 5128: 5122: 5107: 5101: 5097: 5090: 5068: 5064: 5041: 5037: 5003:Willard, Dan E. 5000: 4996: 4989: 4967: 4958: 4948: 4946: 4942: 4931: 4925: 4921: 4914: 4898:Donald E. Knuth 4895: 4886: 4857: 4853: 4843: 4841: 4830: 4823: 4808:10.2307/1402731 4792:Plackett, Robin 4789: 4785: 4755: 4751: 4744: 4724:Stein, Clifford 4709: 4702: 4660: 4654: 4650: 4635: 4613: 4606: 4583: 4576: 4545: 4541: 4532: 4525: 4515: 4513: 4498: 4481: 4474: 4452: 4423: 4416: 4394: 4385: 4365: 4352: 4345: 4325:Stein, Clifford 4310: 4306: 4299: 4287:. Vol. 3: 4278: 4269: 4247: 4243: 4236: 4213: 4200: 4196: 4189: 4173:Stein, Clifford 4158: 4151: 4146: 4141: 4112:Pearson hashing 4077: 4060: 4056: 4045: 4041: 4031: 4017: 4004: 4000: 3996: 3992: 3978: 3969:arbitrary types 3962: 3952: 3934: 3932:Implementations 3922: 3916: 3904: 3898: 3886: 3880: 3856: 3844: 3838: 3833: 3784: 3781: 3780: 3756: 3752: 3728: 3724: 3706: 3702: 3693: 3689: 3687: 3684: 3683: 3667: 3664: 3663: 3614: 3611: 3610: 3585: 3582: 3581: 3565: 3562: 3561: 3545: 3542: 3541: 3525: 3522: 3521: 3514: 3503: 3497: 3456: 3447: 3443: 3423: 3421: 3418: 3417: 3386: 3377: 3373: 3353: 3351: 3348: 3347: 3321: 3307: 3284: 3282: 3279: 3278: 3253: 3230: 3228: 3225: 3224: 3199: 3185: 3183: 3180: 3179: 3154: 3140: 3138: 3135: 3134: 3131:command pattern 3109: 3105: 3103: 3100: 3099: 3082: 3078: 3076: 3073: 3072: 3064:heap compaction 3052: 3039: 2997: 2994: 2993: 2990: 2965: 2963: 2960: 2959: 2937: 2934: 2933: 2914: 2912: 2909: 2908: 2883: 2880: 2879: 2863: 2860: 2859: 2843: 2840: 2839: 2823: 2820: 2819: 2758: 2755: 2754: 2690: 2687: 2686: 2666: 2663: 2662: 2646: 2643: 2642: 2626: 2623: 2622: 2594: 2591: 2590: 2574: 2571: 2570: 2547: 2507: 2504: 2503: 2483: 2480: 2479: 2463: 2460: 2459: 2413: 2407: 2372: 2369: 2368: 2362: 2356: 2341: 2335: 2330: 2310: 2269: 2266: 2265: 2228:Open addressing 2203: 2201:Open addressing 2197: 2195:Open addressing 2150:cache-conscious 2146: 2116: 2112: 2110: 2107: 2106: 2086: 2083: 2082: 2057: 2054: 2053: 2027: 2013: 2010: 2009: 1998:self-organizing 1990: 1970: 1889: 1886: 1885: 1869: 1866: 1865: 1837: 1821: 1815: 1794:open addressing 1767: 1738: 1735: 1734: 1718: 1715: 1714: 1698: 1695: 1694: 1674: 1671: 1670: 1650: 1649: 1643: 1639: 1621: 1620: 1597: 1594: 1593: 1590: 1569: 1566: 1565: 1543: 1540: 1539: 1523: 1520: 1519: 1501: 1497: 1470: 1467: 1466: 1463: 1439: 1394: 1392: 1389: 1388: 1366: 1363: 1362: 1346: 1343: 1342: 1322: 1319: 1318: 1298: 1295: 1294: 1267: 1264: 1263: 1207: 1204: 1203: 1177: 1174: 1173: 1133: 1116: 1113: 1112: 1096: 1093: 1092: 1034: 1031: 1030: 1024: 1002: 998: 996: 993: 992: 973: 970: 969: 952: 930: 926: 924: 921: 920: 911: 887: 881: 877: 875: 872: 871: 854: 850: 848: 845: 844: 828: 825: 824: 807: 803: 801: 798: 797: 781: 778: 777: 758: 755: 754: 734: 731: 730: 712: 709: 708: 681: 661: 659: 656: 655: 639: 636: 635: 629: 614:time complexity 582: 579: 578: 562: 559: 558: 524: 521: 520: 504: 501: 500: 478: 475: 474: 458: 455: 454: 438: 435: 434: 418: 415: 414: 399: 341:open addressing 333:Hans Peter Luhn 329: 266:key–value pairs 258:Hash collisions 88:Time complexity 50: 39: 28: 23: 22: 15: 12: 11: 5: 6845: 6835: 6834: 6829: 6812: 6811: 6809: 6808: 6802: 6799: 6798: 6796: 6795: 6790: 6785: 6779: 6777: 6771: 6770: 6768: 6767: 6766: 6765: 6755: 6754: 6753: 6751:Hilbert R-tree 6748: 6743: 6733: 6732: 6731: 6729:Fibonacci heap 6726: 6721: 6711: 6710: 6709: 6704: 6699: 6697:Red–black tree 6694: 6689: 6679: 6673: 6671: 6665: 6664: 6662: 6661: 6656: 6651: 6646: 6641: 6635: 6633: 6627: 6626: 6624: 6623: 6618: 6613: 6608: 6603: 6598: 6592: 6590: 6584: 6583: 6581: 6580: 6579: 6578: 6573: 6563: 6562: 6561: 6554:Priority queue 6551: 6550: 6549: 6539: 6534: 6529: 6528: 6527: 6522: 6511: 6509: 6503: 6502: 6500: 6499: 6494: 6488: 6486: 6482: 6481: 6474: 6473: 6466: 6459: 6451: 6445: 6444: 6438: 6432: 6423: 6412: 6411:External links 6409: 6408: 6407: 6379:(2): 209–224. 6368: 6362: 6339: 6336: 6333: 6332: 6314: 6288: 6263: 6237: 6206: 6155: 6125: 6100: 6064: 6038: 6013: 5983: 5939: 5908: 5889:(2): 232–238. 5873: 5842: 5798: 5757: 5701: 5694: 5676: 5635: 5605: 5566: 5529: 5498: 5479:(4): 600–617. 5463: 5433: 5403: 5396: 5359: 5352: 5335:10.1.1.25.4189 5313: 5302: 5271: 5264: 5216: 5209: 5192:10.1.1.25.4189 5167: 5160: 5142: 5120: 5095: 5088: 5062: 5051:(5): 633–660. 5035: 4994: 4987: 4956: 4919: 4912: 4884: 4871:(3): 265–279. 4851: 4821: 4783: 4749: 4742: 4700: 4678:10.1.1.568.130 4648: 4633: 4604: 4593:(2): 109–112. 4574: 4539: 4523: 4479: 4472: 4421: 4414: 4383: 4350: 4343: 4304: 4297: 4267: 4241: 4234: 4207:Sanders, Peter 4203:Mehlhorn, Kurt 4194: 4187: 4148: 4147: 4145: 4142: 4140: 4139: 4134: 4132:Stable hashing 4129: 4124: 4119: 4114: 4109: 4104: 4099: 4094: 4089: 4084: 4078: 4076: 4073: 3933: 3930: 3918:Main article: 3915: 3912: 3900:Main article: 3897: 3894: 3882:Main article: 3879: 3876: 3855: 3852: 3840:Main article: 3837: 3834: 3832: 3829: 3797: 3794: 3791: 3788: 3764: 3759: 3755: 3751: 3748: 3742: 3736: 3731: 3727: 3723: 3720: 3714: 3709: 3705: 3701: 3696: 3692: 3671: 3651: 3645: 3639: 3636: 3633: 3630: 3624: 3618: 3598: 3595: 3592: 3589: 3569: 3549: 3529: 3513: 3510: 3506:Linear hashing 3501:Linear hashing 3499:Main article: 3496: 3495:Linear hashing 3493: 3492: 3491: 3490:gets executed. 3484: 3472: 3469: 3465: 3462: 3459: 3455: 3446: 3442: 3438: 3435: 3432: 3429: 3426: 3414: 3402: 3399: 3395: 3392: 3389: 3385: 3376: 3372: 3368: 3365: 3362: 3359: 3356: 3328: 3320: 3316: 3313: 3310: 3306: 3302: 3299: 3296: 3293: 3290: 3287: 3266: 3262: 3259: 3256: 3252: 3248: 3245: 3242: 3239: 3236: 3233: 3212: 3208: 3205: 3202: 3198: 3194: 3191: 3188: 3167: 3163: 3160: 3157: 3153: 3149: 3146: 3143: 3108: 3081: 3062:that triggers 3051: 3048: 3038: 3035: 3010: 3007: 3004: 3001: 2989: 2986: 2985: 2984: 2971: 2968: 2947: 2944: 2941: 2920: 2917: 2896: 2893: 2890: 2887: 2867: 2847: 2827: 2807: 2804: 2801: 2798: 2795: 2792: 2789: 2786: 2780: 2774: 2771: 2768: 2765: 2762: 2751: 2739: 2736: 2733: 2730: 2727: 2724: 2721: 2718: 2712: 2706: 2703: 2700: 2697: 2694: 2670: 2650: 2630: 2610: 2607: 2604: 2601: 2598: 2578: 2546: 2543: 2531:neighbourhood, 2514: 2511: 2490: 2487: 2467: 2424:linear probing 2420:cuckoo hashing 2409:Main article: 2406: 2403: 2385: 2382: 2379: 2376: 2365:Cuckoo hashing 2360:Cuckoo hashing 2358:Main article: 2355: 2354:Cuckoo hashing 2352: 2337:Main article: 2334: 2331: 2329: 2326: 2322:memory latency 2309: 2306: 2273: 2262: 2261: 2258:Double hashing 2255: 2249: 2246:Linear probing 2236:probe sequence 2199:Main article: 2196: 2193: 2177:cache-friendly 2145: 2142: 2119: 2115: 2090: 2070: 2067: 2064: 2061: 2034: 2030: 2026: 2023: 2020: 2017: 1989: 1986: 1944:in linked list 1906: 1893: 1873: 1861:key–value pair 1836: 1833: 1814: 1811: 1766: 1763: 1742: 1722: 1702: 1678: 1658: 1653: 1646: 1642: 1638: 1635: 1632: 1629: 1624: 1619: 1616: 1613: 1610: 1607: 1604: 1601: 1589: 1586: 1573: 1553: 1550: 1547: 1527: 1507: 1500: 1495: 1489: 1483: 1480: 1477: 1474: 1462: 1459: 1438: 1435: 1421: 1418: 1415: 1412: 1409: 1406: 1403: 1400: 1397: 1376: 1373: 1370: 1350: 1326: 1313:is said to be 1302: 1271: 1247: 1244: 1241: 1238: 1235: 1232: 1229: 1226: 1223: 1220: 1217: 1214: 1211: 1187: 1184: 1181: 1160: 1157: 1154: 1151: 1148: 1145: 1142: 1139: 1136: 1132: 1129: 1126: 1123: 1120: 1100: 1080: 1077: 1074: 1071: 1068: 1065: 1062: 1059: 1056: 1053: 1050: 1047: 1044: 1041: 1038: 1023: 1020: 1005: 1001: 988:approaches 1. 977: 964:be resized or 951: 948: 933: 929: 910: 907: 894: 890: 884: 880: 857: 853: 832: 810: 806: 785: 762: 751: 750: 738: 728: 716: 693: 688: 685: 680: 677: 674: 671: 643: 628: 625: 601: 598: 595: 592: 589: 586: 566: 546: 543: 540: 537: 534: 531: 528: 508: 488: 485: 482: 462: 442: 422: 398: 395: 328: 325: 229:to compute an 207:data structure 185: 184: 181: 180: 173: 166: 162: 161: 155: 154: 147: 144: 140: 139: 132: 129: 125: 124: 117: 114: 110: 109: 104: 99: 95: 94: 92:big O notation 80: 79: 76: 72: 71: 65: 59: 58: 26: 9: 6: 4: 3: 2: 6844: 6833: 6830: 6828: 6825: 6824: 6822: 6807: 6804: 6803: 6800: 6794: 6791: 6789: 6786: 6784: 6781: 6780: 6778: 6776: 6772: 6764: 6761: 6760: 6759: 6756: 6752: 6749: 6747: 6744: 6742: 6739: 6738: 6737: 6734: 6730: 6727: 6725: 6724:Binomial heap 6722: 6720: 6717: 6716: 6715: 6712: 6708: 6705: 6703: 6700: 6698: 6695: 6693: 6690: 6688: 6685: 6684: 6683: 6680: 6678: 6675: 6674: 6672: 6670: 6666: 6660: 6657: 6655: 6652: 6650: 6647: 6645: 6642: 6640: 6637: 6636: 6634: 6632: 6628: 6622: 6621:Sparse matrix 6619: 6617: 6614: 6612: 6609: 6607: 6606:Dynamic array 6604: 6602: 6599: 6597: 6594: 6593: 6591: 6589: 6585: 6577: 6574: 6572: 6569: 6568: 6567: 6564: 6560: 6557: 6556: 6555: 6552: 6548: 6545: 6544: 6543: 6540: 6538: 6535: 6533: 6530: 6526: 6523: 6521: 6518: 6517: 6516: 6513: 6512: 6510: 6508: 6504: 6498: 6495: 6493: 6490: 6489: 6487: 6483: 6479: 6472: 6467: 6465: 6460: 6458: 6453: 6452: 6449: 6442: 6439: 6436: 6433: 6431: 6427: 6424: 6422: 6418: 6415: 6414: 6404: 6400: 6395: 6390: 6386: 6382: 6378: 6374: 6369: 6365: 6359: 6355: 6350: 6349: 6342: 6341: 6328: 6327:Dot Net Perls 6324: 6318: 6303: 6299: 6292: 6277: 6273: 6267: 6251: 6247: 6241: 6225: 6221: 6217: 6210: 6202: 6198: 6193: 6188: 6184: 6180: 6176: 6172: 6171: 6166: 6159: 6143: 6139: 6135: 6129: 6114: 6110: 6104: 6085: 6081: 6074: 6068: 6052: 6048: 6042: 6027: 6023: 6017: 6001: 5997: 5993: 5987: 5979: 5973: 5957: 5950: 5943: 5927: 5923: 5922:Linux Journal 5919: 5912: 5904: 5900: 5896: 5892: 5888: 5884: 5877: 5861: 5857: 5853: 5846: 5827: 5823: 5819: 5812: 5805: 5803: 5783: 5779: 5775: 5768: 5761: 5753: 5738: 5734: 5730: 5726: 5722: 5715: 5708: 5706: 5697: 5691: 5687: 5680: 5672: 5657: 5653: 5646: 5639: 5623: 5616: 5609: 5590: 5586: 5579: 5578: 5570: 5551: 5547: 5540: 5533: 5517: 5513: 5509: 5502: 5494: 5490: 5486: 5482: 5478: 5474: 5467: 5448: 5444: 5440: 5436: 5430: 5426: 5419: 5418: 5410: 5408: 5399: 5393: 5389: 5385: 5381: 5374: 5372: 5370: 5368: 5366: 5364: 5355: 5349: 5345: 5341: 5336: 5331: 5327: 5323: 5317: 5309: 5305: 5299: 5295: 5290: 5289: 5280: 5278: 5276: 5267: 5265:0-262-03293-7 5261: 5257: 5253: 5249: 5248: 5243: 5239: 5235: 5231: 5225: 5223: 5221: 5212: 5206: 5202: 5198: 5193: 5188: 5184: 5180: 5174: 5172: 5163: 5157: 5153: 5146: 5127: 5123: 5117: 5113: 5106: 5099: 5091: 5085: 5081: 5077: 5073: 5066: 5058: 5054: 5050: 5046: 5039: 5030: 5026: 5022: 5018: 5014: 5010: 5009: 5004: 4998: 4990: 4984: 4980: 4976: 4972: 4965: 4963: 4961: 4941: 4937: 4930: 4923: 4915: 4909: 4905: 4904: 4899: 4893: 4891: 4889: 4879: 4874: 4870: 4866: 4862: 4855: 4839: 4835: 4828: 4826: 4817: 4813: 4809: 4805: 4801: 4797: 4793: 4787: 4779: 4775: 4771: 4767: 4763: 4759: 4758:Pearson, Karl 4753: 4745: 4739: 4735: 4731: 4730: 4725: 4721: 4717: 4713: 4707: 4705: 4696: 4692: 4688: 4684: 4679: 4674: 4670: 4666: 4659: 4652: 4644: 4640: 4636: 4634:1-4244-0505-X 4630: 4626: 4622: 4618: 4611: 4609: 4600: 4596: 4592: 4588: 4581: 4579: 4570: 4566: 4562: 4558: 4554: 4550: 4543: 4536: 4530: 4528: 4511: 4507: 4503: 4496: 4494: 4492: 4490: 4488: 4486: 4484: 4475: 4469: 4465: 4461: 4457: 4450: 4448: 4446: 4444: 4442: 4440: 4438: 4436: 4434: 4432: 4430: 4428: 4426: 4417: 4411: 4407: 4403: 4399: 4392: 4390: 4388: 4379: 4375: 4374: 4369: 4363: 4361: 4359: 4357: 4355: 4346: 4340: 4336: 4332: 4331: 4326: 4322: 4318: 4314: 4308: 4300: 4294: 4290: 4286: 4282: 4281:Knuth, Donald 4276: 4274: 4272: 4263: 4259: 4255: 4252:(Fall 2005). 4251: 4245: 4237: 4231: 4227: 4223: 4219: 4212: 4208: 4204: 4198: 4190: 4184: 4180: 4179: 4174: 4170: 4166: 4162: 4156: 4154: 4149: 4138: 4135: 4133: 4130: 4128: 4125: 4123: 4120: 4118: 4115: 4113: 4110: 4108: 4107:Lazy deletion 4105: 4103: 4100: 4098: 4095: 4093: 4090: 4088: 4085: 4083: 4080: 4079: 4072: 4070: 4066: 4054: 4049: 4039: 4035: 4029: 4025: 4023: 4015: 4011: 4010:collections. 4009: 4005:LinkedHashMap 4001:LinkedHashSet 3990: 3986: 3984: 3976: 3972: 3970: 3965: 3964:unordered_map 3960: 3956: 3950: 3946: 3941: 3939: 3929: 3927: 3921: 3911: 3909: 3903: 3893: 3891: 3885: 3875: 3873: 3869: 3865: 3861: 3851: 3849: 3843: 3828: 3826: 3823: 3822:case-specific 3819: 3815: 3811: 3792: 3786: 3778: 3757: 3753: 3746: 3740: 3729: 3725: 3718: 3712: 3707: 3703: 3699: 3694: 3690: 3669: 3649: 3634: 3628: 3622: 3616: 3593: 3587: 3567: 3547: 3527: 3519: 3509: 3507: 3502: 3489: 3485: 3444: 3415: 3374: 3345: 3344: 3343: 3341: 3318: 3132: 3128: 3106: 3079: 3069: 3068:memory blocks 3065: 3061: 3057: 3047: 3044: 3034: 3032: 3028: 3024: 3005: 2999: 2969: 2966: 2945: 2942: 2939: 2918: 2915: 2891: 2885: 2865: 2845: 2825: 2805: 2802: 2799: 2796: 2790: 2784: 2778: 2772: 2769: 2766: 2763: 2760: 2752: 2737: 2734: 2731: 2728: 2722: 2716: 2710: 2704: 2701: 2698: 2695: 2692: 2684: 2683: 2682: 2668: 2648: 2628: 2608: 2605: 2602: 2599: 2596: 2576: 2568: 2564: 2560: 2556: 2552: 2542: 2540: 2536: 2532: 2528: 2512: 2509: 2488: 2485: 2465: 2457: 2453: 2449: 2445: 2440: 2438: 2434: 2429: 2428:neighbourhood 2425: 2421: 2417: 2412: 2402: 2400: 2399:infinite loop 2380: 2374: 2366: 2361: 2351: 2349: 2345: 2340: 2325: 2323: 2319: 2315: 2305: 2303: 2299: 2296:the elements 2295: 2291: 2287: 2286:infinite loop 2271: 2259: 2256: 2253: 2250: 2247: 2244: 2243: 2242: 2239: 2237: 2233: 2229: 2222: 2216: 2207: 2202: 2192: 2190: 2186: 2182: 2178: 2174: 2173:dynamic array 2170: 2165: 2163: 2159: 2155: 2151: 2141: 2139: 2134: 2117: 2113: 2104: 2088: 2065: 2059: 2051: 2046: 2028: 2024: 2021: 2015: 2007: 2003: 1999: 1995: 1985: 1983: 1979: 1975: 1969: 1966: 1963: 1960: 1956: 1952: 1948: 1945: 1942: 1939: 1935: 1931: 1927: 1924: 1921: 1918: 1914: 1910: 1905: 1891: 1871: 1862: 1858: 1849: 1841: 1832: 1830: 1826: 1825:hash function 1820: 1810: 1807: 1803: 1801: 1800: 1795: 1790: 1788: 1784: 1778: 1776: 1771: 1762: 1760: 1756: 1740: 1720: 1700: 1692: 1676: 1644: 1633: 1630: 1617: 1611: 1605: 1599: 1585: 1571: 1551: 1548: 1545: 1525: 1505: 1493: 1487: 1478: 1472: 1458: 1456: 1452: 1448: 1444: 1434: 1419: 1416: 1413: 1410: 1407: 1404: 1401: 1398: 1395: 1374: 1371: 1368: 1348: 1340: 1324: 1316: 1300: 1291: 1289: 1285: 1269: 1261: 1242: 1239: 1236: 1233: 1230: 1227: 1224: 1221: 1218: 1212: 1209: 1201: 1185: 1182: 1179: 1158: 1155: 1152: 1149: 1146: 1143: 1140: 1137: 1134: 1130: 1124: 1118: 1098: 1075: 1072: 1069: 1066: 1063: 1060: 1057: 1054: 1051: 1042: 1039: 1036: 1029: 1028:hash function 1022:Hash function 1019: 999: 989: 975: 967: 963: 958: 955: 947: 927: 917: 914: 906: 892: 888: 878: 851: 830: 804: 783: 774: 760: 736: 729: 714: 707: 706: 705: 691: 686: 683: 678: 672: 641: 634: 624: 621: 619: 615: 599: 596: 590: 584: 564: 538: 532: 526: 506: 486: 483: 480: 460: 440: 420: 412: 408: 404: 394: 392: 388: 384: 379: 377: 373: 372:Andrey Ershov 369: 366: 362: 358: 357:Arthur Samuel 354: 350: 346: 342: 338: 334: 324: 322: 318: 314: 310: 306: 302: 299:or any other 298: 293: 291: 290:linear search 287: 286:binary search 282: 278: 273: 271: 267: 261: 259: 255: 250: 248: 244: 240: 236: 232: 228: 227:hash function 224: 220: 216: 212: 208: 204: 200: 191: 178: 174: 171: 167: 163: 160: 156: 152: 148: 145: 141: 137: 133: 130: 126: 122: 118: 115: 111: 108: 105: 103: 100: 96: 93: 89: 85: 81: 77: 73: 70: 66: 64: 60: 55: 52: 48: 45:episode, see 44: 37: 33: 19: 6610: 6576:Disjoint-set 6376: 6372: 6347: 6326: 6317: 6305:. Retrieved 6301: 6296:dotnet-bot. 6291: 6279:. Retrieved 6275: 6266: 6256:December 14, 6254:. Retrieved 6240: 6228:. Retrieved 6219: 6209: 6174: 6168: 6158: 6146:. Retrieved 6137: 6128: 6116:. Retrieved 6112: 6103: 6091:. Retrieved 6084:the original 6067: 6055:. Retrieved 6050: 6041: 6029:. Retrieved 6025: 6016: 6004:. Retrieved 5995: 5986: 5960:. Retrieved 5942: 5930:. Retrieved 5911: 5886: 5882: 5876: 5864:. Retrieved 5860:the original 5845: 5835:December 31, 5833:. Retrieved 5791:November 10, 5789:. Retrieved 5773: 5760: 5750:– via 5744:. Retrieved 5720: 5685: 5679: 5669:– via 5663:. Retrieved 5638: 5626:. Retrieved 5608: 5596:. Retrieved 5576: 5569: 5557:. Retrieved 5532: 5520:. Retrieved 5501: 5476: 5472: 5466: 5454:. Retrieved 5416: 5379: 5325: 5322:Pagh, Rasmus 5316: 5306:– via 5287: 5245: 5182: 5179:Pagh, Rasmus 5151: 5145: 5133:. Retrieved 5126:the original 5111: 5098: 5071: 5065: 5048: 5044: 5038: 5012: 5006: 4997: 4970: 4947:. Retrieved 4935: 4922: 4902: 4868: 4864: 4854: 4842:. Retrieved 4838:the original 4802:(1): 59–72. 4799: 4795: 4786: 4769: 4768:. Series 5. 4765: 4752: 4728: 4664: 4651: 4616: 4590: 4586: 4552: 4548: 4542: 4514:. Retrieved 4455: 4397: 4372: 4329: 4307: 4288: 4284: 4257: 4244: 4217: 4197: 4177: 4082:Bloom filter 4050: 4036: 4030:'s built-in 4026: 4016:'s built-in 4012: 3987: 3977:'s built-in 3973: 3957: 3942: 3935: 3923: 3905: 3887: 3866:(such as in 3857: 3845: 3831:Applications 3776: 3515: 3504: 3487: 3126: 3053: 3040: 3031:memory usage 3022: 2991: 2563:distribution 2550: 2548: 2534: 2530: 2455: 2443: 2441: 2427: 2414: 2363: 2342: 2311: 2290:average cost 2263: 2240: 2235: 2231: 2226: 2166: 2147: 2135: 2047: 1991: 1971: 1967: 1964: 1961: 1958: 1954: 1950: 1946: 1943: 1940: 1937: 1933: 1929: 1925: 1922: 1919: 1916: 1912: 1908: 1854: 1822: 1804: 1797: 1791: 1787:prime number 1783:power of two 1779: 1768: 1759:golden ratio 1755:Donald Knuth 1591: 1464: 1442: 1440: 1292: 1258:, where the 1199: 1025: 990: 965: 961: 959: 956: 953: 918: 915: 912: 775: 752: 632: 630: 622: 400: 387:Arnold Dumey 380: 361:IBM Research 330: 297:search trees 294: 274: 262: 251: 246: 242: 238: 234: 230: 202: 196: 176: 169: 150: 135: 120: 106: 101: 51: 42: 6719:Binary heap 6644:Linked list 6421:hash tables 6307:January 16, 6093:February 8, 5818:Netherlands 5746:November 9, 5665:November 9, 5628:December 4, 5598:November 2, 5559:November 2, 5522:November 1, 5456:November 2, 5308:Archive.org 5256:McGraw-Hill 4929:"Lecture 2" 4555:(1): 5–19. 4516:October 26, 3870:) although 3512:Performance 2907:—let it be 2138:fusion tree 1982:total order 1974:numerically 1857:linked list 1829:array index 663:load factor 633:load factor 627:Load factor 411:unique keys 345:Gene Amdahl 6821:Categories 6707:Splay tree 6611:Hash table 6492:Collection 6394:10092/9691 6220:heroku.com 6118:January 1, 4373:Algorithms 4144:References 4061:Dictionary 3945:JavaScript 3277:through a 2302:clustering 2294:distribute 1817:See also: 1799:clustering 1260:bit length 499:. A value 433:of length 381:The first 217:that maps 203:hash table 107:Worst case 67:Unordered 57:Hash table 43:South Park 6763:Hash tree 6649:Skip list 6596:Bit array 6497:Container 6430:Pat Morin 6419:entry on 6201:215943738 6148:April 27, 5962:March 26, 5932:April 16, 5903:212649328 5866:March 26, 5493:125374363 5330:CiteSeerX 5252:MIT Press 5187:CiteSeerX 4673:CiteSeerX 3961:includes 3940:modules. 3777:collision 3700:≠ 3670:σ 3644:% 3617:σ 3528:σ 3043:allocated 2711:≤ 2448:bit array 2314:CPU cache 2298:uniformly 2272:α 2187:—such as 2162:CPU cache 2025:⁡ 1978:lexically 1657:⌋ 1615:⌊ 1549:∈ 1417:− 1372:∈ 1339:injective 1337:if it is 1284:word size 1240:− 1183:∈ 1156:− 1131:∈ 1073:− 1046:→ 1000:α 976:α 928:α 879:α 852:α 831:α 805:α 784:α 761:α 673:α 642:α 484:≥ 405:stores a 383:published 368:assembler 270:amortized 235:hash code 199:computing 98:Operation 36:Hash tree 32:Hash list 6692:AVL tree 6571:Multiset 6520:Multimap 6507:Abstract 6403:12854386 6250:Archived 6224:Archived 6177:(1): 3. 6142:Archived 6057:July 15, 6031:July 24, 6000:Archived 5972:cite web 5926:Archived 5826:Archived 5782:Archived 5737:Archived 5656:Archived 5589:Archived 5550:Archived 5516:Archived 5447:Archived 5443:14083698 5135:June 13, 4949:June 30, 4940:Archived 4760:(1900). 4569:17874775 4510:Archived 4283:(1998). 4262:Archived 4209:(2008). 4175:(2009). 4117:PhotoDNA 4075:See also 3814:disperse 3127:cleaning 3023:rehashed 2970:′ 2919:′ 2559:variance 966:rehashed 843:reaches 557:, where 397:Overview 305:software 247:hash map 75:Invented 6746:R+ tree 6741:R* tree 6687:AA tree 6281:July 1, 6230:July 3, 6179:Bibcode 5029:1740562 4844:May 10, 4816:1402731 4695:2557794 4643:1494710 4057:HashSet 4046:HashSet 4042:HashMap 4008:generic 3997:HashMap 3993:HashSet 3949:coerced 3872:B-trees 3488:command 3483:bucket. 3413:bucket. 3340:wrapper 3323:command 2858:; swap 2567:cluster 2561:of the 2316:due to 2232:probing 2210:Smith". 2152:due to 1994:ordered 1315:perfect 365:IBM 701 327:History 239:buckets 102:Average 6775:Graphs 6736:R-tree 6677:B-tree 6631:Linked 6588:Arrays 6401:  6360:  6356:–418. 6199:  6113:go.dev 6006:May 1, 5901:  5692:  5491:  5441:  5431:  5394:  5350:  5332:  5300:  5262:  5207:  5189:  5158:  5118:  5086:  5027:  4985:  4910:  4814:  4740:  4693:  4675:  4641:  4631:  4567:  4470:  4412:  4341:  4337:–252. 4295:  4232:  4185:  4069:VB.NET 4014:Python 4003:, and 3890:caches 3878:Caches 3744:  3738:  3716:  3647:  3641:  3626:  3620:  3416:Clean 3346:Clean 2782:  2776:  2714:  2708:  1959:delete 1917:insert 1669:Where 1518:Where 1491:  1485:  1453:, and 704:where 667:  355:, and 319:, and 317:caches 281:memory 223:values 143:Delete 128:Insert 113:Search 6669:Trees 6542:Queue 6537:Stack 6485:Types 6399:S2CID 6197:S2CID 6087:(PDF) 6076:(PDF) 5952:(PDF) 5899:S2CID 5829:(PDF) 5814:(PDF) 5785:(PDF) 5770:(PDF) 5740:(PDF) 5717:(PDF) 5659:(PDF) 5648:(PDF) 5618:(PDF) 5592:(PDF) 5581:(PDF) 5553:(PDF) 5542:(PDF) 5489:S2CID 5450:(PDF) 5421:(PDF) 5129:(PDF) 5108:(PDF) 4943:(PDF) 4932:(PDF) 4812:JSTOR 4661:(PDF) 4639:S2CID 4565:S2CID 4214:(PDF) 3959:C++11 2878:with 2533:i.e. 2446:-bit 2105:with 1859:with 1689:is a 1286:of a 301:table 279:. If 268:, at 243:slots 231:index 205:is a 165:Space 6758:Trie 6714:Heap 6532:List 6417:NIST 6358:ISBN 6309:2024 6283:2023 6258:2022 6232:2019 6175:1453 6150:2018 6120:2023 6095:2022 6059:2023 6033:2022 6008:2020 5978:link 5964:2022 5934:2022 5868:2022 5837:2021 5793:2021 5748:2021 5690:ISBN 5667:2021 5630:2023 5600:2021 5561:2021 5524:2021 5458:2021 5439:OCLC 5429:ISBN 5392:ISBN 5348:ISBN 5298:ISBN 5260:ISBN 5254:and 5205:ISBN 5156:ISBN 5137:2010 5116:ISBN 5084:ISBN 4983:ISBN 4951:2008 4908:ISBN 4846:2015 4738:ISBN 4629:ISBN 4518:2021 4468:ISBN 4410:ISBN 4339:ISBN 4293:ISBN 4230:ISBN 4183:ISBN 4067:and 4059:and 4053:.NET 4051:The 4038:Rust 4032:Hash 4028:Ruby 4022:type 4018:dict 3989:Java 3983:type 3896:Sets 3860:disk 3580:and 3486:The 3223:and 3098:and 2779:> 2478:and 1957:) 1936:) 1915:) 1884:and 1792:For 1693:and 1564:and 1172:for 962:must 597:< 321:sets 219:keys 201:, a 146:Θ(1) 131:Θ(1) 116:Θ(1) 78:1953 63:Type 6566:Set 6389:hdl 6381:doi 6354:369 6187:doi 5891:doi 5729:doi 5481:doi 5384:doi 5340:doi 5197:doi 5076:doi 5053:doi 5017:doi 4975:doi 4873:doi 4804:doi 4774:doi 4683:doi 4621:doi 4595:doi 4557:doi 4460:doi 4402:doi 4335:221 4222:doi 3979:map 3953:Map 3943:In 3868:dbm 3449:new 3379:old 3111:new 3084:old 2753:If 2685:If 2527:set 2167:In 2048:In 2022:log 1976:or 1641:mod 1499:mod 1341:on 1262:of 1004:max 932:max 883:max 856:max 809:max 407:set 401:An 359:of 337:IBM 288:or 241:or 221:to 197:In 90:in 34:or 6823:: 6428:, 6397:. 6387:. 6377:20 6375:. 6325:. 6300:. 6274:. 6248:. 6222:. 6218:. 6195:. 6185:. 6173:. 6167:. 6140:. 6136:. 6111:. 6078:. 6049:. 6024:. 5998:. 5994:. 5974:}} 5970:{{ 5954:. 5924:. 5920:. 5897:. 5887:17 5885:. 5854:. 5824:. 5820:: 5816:. 5801:^ 5776:. 5772:. 5735:. 5727:. 5723:. 5719:. 5704:^ 5650:. 5620:. 5544:. 5510:. 5487:. 5477:28 5475:. 5445:. 5437:. 5406:^ 5390:. 5362:^ 5346:. 5338:. 5296:. 5274:^ 5240:; 5236:; 5232:; 5219:^ 5203:. 5195:. 5170:^ 5110:. 5082:. 5049:19 5047:. 5025:MR 5023:. 5013:29 5011:. 4981:. 4959:^ 4938:. 4934:. 4887:^ 4869:22 4867:. 4863:. 4824:^ 4810:. 4800:51 4798:. 4770:50 4764:. 4736:. 4722:; 4718:; 4714:; 4703:^ 4691:MR 4689:. 4681:. 4667:. 4663:. 4637:. 4627:. 4607:^ 4591:45 4589:. 4577:^ 4563:. 4551:. 4526:^ 4504:. 4482:^ 4466:. 4458:. 4424:^ 4408:. 4400:. 4386:^ 4353:^ 4323:; 4319:; 4315:; 4270:^ 4260:. 4256:. 4228:. 4216:. 4205:; 4171:; 4167:; 4163:; 4152:^ 4071:. 4065:C# 4044:, 4024:. 3999:, 3995:, 3985:. 3975:Go 3971:. 3924:A 3850:. 3560:, 3178:, 3033:. 2641:, 2541:. 2422:, 2324:. 1953:, 1932:, 1911:, 1789:. 1761:. 1449:, 1290:. 1026:A 905:. 773:. 631:A 620:. 351:, 347:, 323:. 315:, 311:, 256:. 249:. 175:O( 168:Θ( 149:O( 134:O( 119:O( 6470:e 6463:t 6456:v 6405:. 6391:: 6383:: 6366:. 6329:. 6311:. 6285:. 6260:. 6234:. 6203:. 6189:: 6181:: 6152:. 6122:. 6097:. 6061:. 6035:. 6010:. 5980:) 5966:. 5936:. 5905:. 5893:: 5870:. 5839:. 5731:: 5698:. 5673:. 5632:. 5602:. 5495:. 5483:: 5460:. 5400:. 5386:: 5356:. 5342:: 5310:. 5269:. 5213:. 5199:: 5164:. 5139:. 5092:. 5078:: 5059:. 5055:: 5033:. 5031:. 5019:: 4991:. 4977:: 4953:. 4916:. 4881:. 4875:: 4848:. 4818:. 4806:: 4780:. 4776:: 4746:. 4697:. 4685:: 4645:. 4623:: 4601:. 4597:: 4571:. 4559:: 4553:7 4537:. 4476:. 4462:: 4418:. 4404:: 4347:. 4301:. 4238:. 4224:: 4191:. 3796:) 3793:1 3790:( 3787:O 3763:) 3758:2 3754:K 3750:( 3747:h 3741:= 3735:) 3730:1 3726:K 3722:( 3719:h 3713:, 3708:2 3704:K 3695:1 3691:K 3650:n 3638:) 3635:K 3632:( 3629:h 3623:= 3597:) 3594:x 3591:( 3588:h 3568:n 3548:K 3520:( 3471:] 3468:) 3464:y 3461:e 3458:k 3454:( 3445:h 3441:[ 3437:e 3434:l 3431:b 3428:a 3425:T 3401:] 3398:) 3394:y 3391:e 3388:k 3384:( 3375:h 3371:[ 3367:e 3364:l 3361:b 3358:a 3355:T 3327:) 3319:, 3315:y 3312:e 3309:k 3305:( 3301:p 3298:u 3295:k 3292:o 3289:o 3286:L 3265:) 3261:y 3258:e 3255:k 3251:( 3247:e 3244:t 3241:e 3238:l 3235:e 3232:D 3211:) 3207:y 3204:e 3201:k 3197:( 3193:t 3190:e 3187:G 3166:) 3162:y 3159:e 3156:k 3152:( 3148:d 3145:d 3142:A 3107:h 3080:h 3009:) 3006:1 3003:( 3000:O 2967:x 2946:1 2943:+ 2940:j 2916:x 2895:] 2892:j 2889:[ 2886:T 2866:x 2846:j 2826:x 2806:l 2803:s 2800:p 2797:. 2794:] 2791:j 2788:[ 2785:T 2773:l 2770:s 2767:p 2764:. 2761:x 2738:l 2735:s 2732:p 2729:. 2726:] 2723:j 2720:[ 2717:T 2705:l 2702:s 2699:p 2696:. 2693:x 2669:j 2649:T 2629:x 2609:l 2606:s 2603:p 2600:. 2597:x 2577:x 2535:H 2513:k 2510:B 2489:k 2486:B 2466:k 2456:H 2444:H 2384:) 2381:1 2378:( 2375:O 2156:— 2118:2 2114:k 2089:k 2069:) 2066:1 2063:( 2060:O 2033:) 2029:n 2019:( 2016:O 1968:T 1962:x 1955:k 1951:T 1947:T 1941:k 1934:k 1930:T 1926:T 1920:x 1913:k 1909:T 1892:x 1872:T 1741:A 1721:m 1701:m 1677:A 1652:) 1645:1 1637:) 1634:A 1631:M 1628:( 1623:( 1618:m 1612:= 1609:) 1606:x 1603:( 1600:h 1572:m 1552:S 1546:x 1526:M 1506:m 1494:x 1488:= 1482:) 1479:x 1476:( 1473:h 1420:1 1414:m 1411:, 1408:. 1405:. 1402:. 1399:, 1396:0 1375:S 1369:x 1349:S 1325:S 1301:h 1270:u 1246:} 1243:1 1237:u 1234:, 1231:. 1228:. 1225:. 1222:, 1219:0 1216:{ 1213:= 1210:U 1186:U 1180:x 1159:1 1153:m 1150:, 1147:. 1144:. 1141:. 1138:, 1135:0 1128:) 1125:x 1122:( 1119:h 1099:U 1079:} 1076:1 1070:m 1067:, 1064:. 1061:. 1058:. 1055:, 1052:0 1049:{ 1043:U 1040:: 1037:h 893:4 889:/ 737:m 715:n 692:, 687:m 684:n 679:= 676:) 670:( 600:m 594:) 591:x 588:( 585:h 565:h 545:] 542:) 539:x 536:( 533:h 530:[ 527:A 507:x 487:n 481:m 461:n 441:m 421:A 179:) 177:n 172:) 170:n 153:) 151:n 138:) 136:n 123:) 121:n 49:. 38:. 20:)

Index

Separate chaining
Hash list
Hash tree
Rehash (South Park)
Type
associative array
Time complexity
big O notation
Space complexity

computing
data structure
associative array
abstract data type
keys
values
hash function
imperfect hash function
Hash collisions
key–value pairs
amortized
space-time tradeoff
memory
binary search
linear search
search trees
table
software
associative arrays
database indexing

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.