Logo
Unionpedia
Communication
Get it on Google Play
New! Download Unionpedia on your Android™ device!
Free
Faster access than browser!
 

Hash table

Index Hash table

In computing, a hash table (hash map) is a data structure that implements an associative array abstract data type, a structure that can map keys to values. [1]

115 relations: Abstract data type, American National Standards Institute, Amortized analysis, Andrey Ershov, Android (operating system), Arthur Samuel, Associative array, B-tree, Big O notation, Binary expression tree, Birthday problem, Black hat, Bloom filter, C++11, Cache (computing), Charles E. Leiserson, Coalesced hashing, Collision (computer science), Computing, Consistent hashing, Content addressable network, CPU cache, Cryptographic hash function, Cuckoo hashing, Daniel J. Bernstein, Data structure, Database index, Dbm, Denial-of-service attack, Discrete uniform distribution, Disk storage, Distributed hash table, Double hashing, Dynamic array, Dynamic perfect hashing, Elaine M. McGraw, Extendible hashing, Finite-state machine, Fusion tree, Gene Amdahl, Generics in Java, Hans Peter Luhn, Hash array mapped trie, Hash consing, Hash function, Hopscotch hashing, Instruction set architecture, Interpreter (computing), Introduction to Algorithms, Java (programming language), ..., Java version history, JavaScript, Judy array, Kademlia, Lazy deletion, Library (computing), Linear hashing, Linear probing, Linear search, Linked list, Lisp (programming language), List (abstract data type), Locality of reference, Lookup table, Lua (programming language), Mask (computing), Memory management, Modulo operation, Monotonic function, Move-to-front transform, Multimap, Nathaniel Rochester (computer scientist), National Institute of Standards and Technology, Open addressing, Pearson hashing, Perfect hash function, Perl, PhotoDNA, PHP, Power of two, Prime number, Programming language, Python (programming language), Quadratic probing, Rabin–Karp algorithm, Random variable, Randomized algorithm, Real-time computing, Rendezvous hashing, Routing table, Ruby (programming language), Rust (programming language), Salt (cryptography), Search data structure, Search tree, Self-balancing binary search tree, Serialization, Set (abstract data type), SIAM Journal on Computing, Smalltalk, Software, Space–time tradeoff, Spell checker, String (computer science), SUHA (computer science), Time complexity, Translation lookaside buffer, Trie, Unique key, Universal hashing, Unordered associative containers (C++), Value (computer science), Word (computer architecture), .NET Framework, 2-choice hashing. Expand index (65 more) »

Abstract data type

In computer science, an abstract data type (ADT) is a mathematical model for data types, where a data type is defined by its behavior (semantics) from the point of view of a user of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations.

New!!: Hash table and Abstract data type · See more »

American National Standards Institute

The American National Standards Institute (ANSI) is a private non-profit organization that oversees the development of voluntary consensus standards for products, services, processes, systems, and personnel in the United States.

New!!: Hash table and American National Standards Institute · See more »

Amortized analysis

In computer science, amortized analysis is a method for analyzing a given algorithm's complexity, or how much of a resource, especially time or memory, it takes to execute.

New!!: Hash table and Amortized analysis · See more »

Andrey Ershov

Academician Andrey Petrovych Ershov (Андре́й Петро́вич Ершо́в; 19 April 1931, Moscow – 8 December 1988, Moscow) was a Soviet computer scientist, notable as a pioneer in systems programming and programming language research.

New!!: Hash table and Andrey Ershov · See more »

Android (operating system)

Android is a mobile operating system developed by Google, based on a modified version of the Linux kernel and other open source software and designed primarily for touchscreen mobile devices such as smartphones and tablets.

New!!: Hash table and Android (operating system) · See more »

Arthur Samuel

Arthur Lee Samuel (December 5, 1901 – July 29, 1990) was an American pioneer in the field of computer gaming and artificial intelligence.

New!!: Hash table and Arthur Samuel · See more »

Associative array

In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs, such that each possible key appears at most once in the collection.

New!!: Hash table and Associative array · See more »

B-tree

In computer science, a B-tree is a self-balancing tree data structure that keeps data sorted and allows searches, sequential access, insertions, and deletions in logarithmic time.

New!!: Hash table and B-tree · See more »

Big O notation

Big O notation is a mathematical notation that describes the limiting behaviour of a function when the argument tends towards a particular value or infinity.

New!!: Hash table and Big O notation · See more »

Binary expression tree

A binary expression tree is a specific kind of a binary tree used to represent expressions.

New!!: Hash table and Binary expression tree · See more »

Birthday problem

In probability theory, the birthday problem or birthday paradox concerns the probability that, in a set of randomly chosen people, some pair of them will have the same birthday.

New!!: Hash table and Birthday problem · See more »

Black hat

A black hat hacker (or black-hat hacker) is a hacker who "violates computer security for little reason beyond maliciousness or for personal gain".

New!!: Hash table and Black hat · See more »

Bloom filter

A Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set.

New!!: Hash table and Bloom filter · See more »

C++11

C++11 is a version of the standard for the programming language C++.

New!!: Hash table and C++11 · See more »

Cache (computing)

In computing, a cache, is a hardware or software component that stores data so future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation, or the duplicate of data stored elsewhere.

New!!: Hash table and Cache (computing) · See more »

Charles E. Leiserson

Charles Eric Leiserson is a computer scientist, specializing in the theory of parallel computing and distributed computing, and particularly practical applications thereof.

New!!: Hash table and Charles E. Leiserson · See more »

Coalesced hashing

Coalesced hashing, also called coalesced chaining, is a strategy of collision resolution in a hash table that forms a hybrid of separate chaining and open addressing.

New!!: Hash table and Coalesced hashing · See more »

Collision (computer science)

Collision is used in two slightly different senses in theoretical computer science and telecommunications.

New!!: Hash table and Collision (computer science) · See more »

Computing

Computing is any goal-oriented activity requiring, benefiting from, or creating computers.

New!!: Hash table and Computing · See more »

Consistent hashing

Consistent hashing is a special kind of hashing such that when a hash table is resized, only K/n keys need to be remapped on average, where K is the number of keys, and n is the number of slots.

New!!: Hash table and Consistent hashing · See more »

Content addressable network

The Content Addressable Network (CAN) is a distributed, decentralized P2P infrastructure that provides hash table functionality on an Internet-like scale.

New!!: Hash table and Content addressable network · See more »

CPU cache

A CPU cache is a hardware cache used by the central processing unit (CPU) of a computer to reduce the average cost (time or energy) to access data from the main memory.

New!!: Hash table and CPU cache · See more »

Cryptographic hash function

A cryptographic hash function is a special class of hash function that has certain properties which make it suitable for use in cryptography.

New!!: Hash table and Cryptographic hash function · See more »

Cuckoo hashing

Cuckoo hashing is a scheme in computer programming for resolving hash collisions of values of hash functions in a table, with worst-case constant lookup time.

New!!: Hash table and Cuckoo hashing · See more »

Daniel J. Bernstein

Daniel Julius Bernstein (sometimes known simply as djb; born October 29, 1971) is a German-American mathematician, cryptologist, and programmer.

New!!: Hash table and Daniel J. Bernstein · See more »

Data structure

In computer science, a data structure is a data organization and storage format that enables efficient access and modification.

New!!: Hash table and Data structure · See more »

Database index

A database index is a data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and storage space to maintain the index data structure.

New!!: Hash table and Database index · See more »

Dbm

The dbm library was a simple database engine, originally written by Ken Thompson and released by AT&T in 1979.

New!!: Hash table and Dbm · See more »

Denial-of-service attack

In computing, a denial-of-service attack (DoS attack) is a cyber-attack in which the perpetrator seeks to make a machine or network resource unavailable to its intended users by temporarily or indefinitely disrupting services of a host connected to the Internet.

New!!: Hash table and Denial-of-service attack · See more »

Discrete uniform distribution

In probability theory and statistics, the discrete uniform distribution is a symmetric probability distribution whereby a finite number of values are equally likely to be observed; every one of n values has equal probability 1/n.

New!!: Hash table and Discrete uniform distribution · See more »

Disk storage

Disk storage (also sometimes called drive storage) is a general category of storage mechanisms where data is recorded by various electronic, magnetic, optical, or mechanical changes to a surface layer of one or more rotating disks.

New!!: Hash table and Disk storage · See more »

Distributed hash table

A distributed hash table (DHT) is a class of a decentralized distributed system that provides a lookup service similar to a hash table: (key, value) pairs are stored in a DHT, and any participating node can efficiently retrieve the value associated with a given key.

New!!: Hash table and Distributed hash table · See more »

Double hashing

Double hashing is a computer programming technique used in hash tables to resolve hash collisions, in cases when two different values to be searched for produce the same hash key.

New!!: Hash table and Double hashing · See more »

Dynamic array

In computer science, a dynamic array, growable array, resizable array, dynamic table, mutable array, or array list is a random access, variable-size list data structure that allows elements to be added or removed.

New!!: Hash table and Dynamic array · See more »

Dynamic perfect hashing

In computer science, dynamic perfect hashing is a programming technique for resolving collisions in a hash table data structure.

New!!: Hash table and Dynamic perfect hashing · See more »

Elaine M. McGraw

Elaine M. McGraw (née Boehme) was an American computer programmer who, together with Arthur Samuel and Gene Amdahl, invented open addressing based hash tables in 1954.

New!!: Hash table and Elaine M. McGraw · See more »

Extendible hashing

Extendible hashing is a type of hash system which treats a hash as a bit string, and uses a trie for bucket lookup.

New!!: Hash table and Extendible hashing · See more »

Finite-state machine

A finite-state machine (FSM) or finite-state automaton (FSA, plural: automata), finite automaton, or simply a state machine, is a mathematical model of computation.

New!!: Hash table and Finite-state machine · See more »

Fusion tree

In computer science, a fusion tree is a type of tree data structure that implements an associative array on -bit integers.

New!!: Hash table and Fusion tree · See more »

Gene Amdahl

Gene Myron Amdahl (November 16, 1922 – November 10, 2015) was an American computer architect and high-tech entrepreneur, chiefly known for his work on mainframe computers at IBM and later his own companies, especially Amdahl Corporation.

New!!: Hash table and Gene Amdahl · See more »

Generics in Java

Generics are a facility of generic programming that were added to the Java programming language in 2004 within version J2SE 5.0.

New!!: Hash table and Generics in Java · See more »

Hans Peter Luhn

Hans Peter Luhn (July 1, 1896 – August 19, 1964) was a researcher in the field of computer science, and, Library & Information Science for IBM, and creator of the Luhn algorithm, KWIC (Key Words In Context) indexing, and Selective dissemination of information ("SDI").

New!!: Hash table and Hans Peter Luhn · See more »

Hash array mapped trie

A hash array mapped trie (HAMT) is an implementation of an associative array that combines the characteristics of a hash table and an array mapped trie.

New!!: Hash table and Hash array mapped trie · See more »

Hash consing

In computer science, particularly in functional programming, hash consing is a technique used to share values that are structurally equal.

New!!: Hash table and Hash consing · See more »

Hash function

A hash function is any function that can be used to map data of arbitrary size to data of a fixed size.

New!!: Hash table and Hash function · See more »

Hopscotch hashing

Hopscotch hashing is a scheme in computer programming for resolving hash collisions of values of hash functions in a table using open addressing.

New!!: Hash table and Hopscotch hashing · See more »

Instruction set architecture

An instruction set architecture (ISA) is an abstract model of a computer.

New!!: Hash table and Instruction set architecture · See more »

Interpreter (computing)

In computer science, an interpreter is a computer program that directly executes, i.e. performs, instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program.

New!!: Hash table and Interpreter (computing) · See more »

Introduction to Algorithms

Introduction to Algorithms is a book by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.

New!!: Hash table and Introduction to Algorithms · See more »

Java (programming language)

Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.

New!!: Hash table and Java (programming language) · See more »

Java version history

The Java language has undergone several changes since JDK 1.0 as well as numerous additions of classes and packages to the standard library.

New!!: Hash table and Java version history · See more »

JavaScript

JavaScript, often abbreviated as JS, is a high-level, interpreted programming language.

New!!: Hash table and JavaScript · See more »

Judy array

In computer science, a Judy array is a data structure implementing a type of associative array with high performance and low memory usage.

New!!: Hash table and Judy array · See more »

Kademlia

Kademlia is a distributed hash table for decentralized peer-to-peer computer networks designed by Petar Maymounkov and David Mazières in 2002.

New!!: Hash table and Kademlia · See more »

Lazy deletion

In computer science, lazy deletion refers to a method of deleting elements from a hash table that uses open addressing.

New!!: Hash table and Lazy deletion · See more »

Library (computing)

In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development.

New!!: Hash table and Library (computing) · See more »

Linear hashing

Linear hashing is a dynamic hash table algorithm invented by Witold Litwin (1980), and later popularized by Paul Larson.

New!!: Hash table and Linear hashing · See more »

Linear probing

Linear probing is a scheme in computer programming for resolving collisions in hash tables, data structures for maintaining a collection of key–value pairs and looking up the value associated with a given key.

New!!: Hash table and Linear probing · See more »

Linear search

In computer science, linear search or sequential search is a method for finding a target value within a list.

New!!: Hash table and Linear search · See more »

Linked list

In computer science, a linked list is a linear collection of data elements, whose order is not given by their physical placement in memory.

New!!: Hash table and Linked list · See more »

Lisp (programming language)

Lisp (historically, LISP) is a family of computer programming languages with a long history and a distinctive, fully parenthesized prefix notation.

New!!: Hash table and Lisp (programming language) · See more »

List (abstract data type)

In computer science, a list or sequence is an abstract data type that represents a countable number of ordered values, where the same value may occur more than once.

New!!: Hash table and List (abstract data type) · See more »

Locality of reference

In computer science, locality of reference, also known as the principle of locality, is a term for the phenomenon in which the same values, or related storage locations, are frequently accessed, depending on the memory access pattern.

New!!: Hash table and Locality of reference · See more »

Lookup table

In computer science, a lookup table is an array that replaces runtime computation with a simpler array indexing operation.

New!!: Hash table and Lookup table · See more »

Lua (programming language)

Lua (from meaning moon) is a lightweight, multi-paradigm programming language designed primarily for embedded use in applications.

New!!: Hash table and Lua (programming language) · See more »

Mask (computing)

In computer science, a mask is data that is used for bitwise operations, particularly in a bit field.

New!!: Hash table and Mask (computing) · See more »

Memory management

Memory management is a form of resource management applied to computer memory.

New!!: Hash table and Memory management · See more »

Modulo operation

In computing, the modulo operation finds the remainder after division of one number by another (sometimes called modulus).

New!!: Hash table and Modulo operation · See more »

Monotonic function

In mathematics, a monotonic function (or monotone function) is a function between ordered sets that preserves or reverses the given order.

New!!: Hash table and Monotonic function · See more »

Move-to-front transform

The move-to-front (MTF) transform is an encoding of data (typically a stream of bytes) designed to improve the performance of entropy encoding techniques of compression.

New!!: Hash table and Move-to-front transform · See more »

Multimap

In computer science, a multimap (sometimes also multihash or multidict) is a generalization of a map or associative array abstract data type in which more than one value may be associated with and returned for a given key.

New!!: Hash table and Multimap · See more »

Nathaniel Rochester (computer scientist)

Nathaniel Rochester (January 14, 1919 – June 8, 2001) designed the IBM 701, wrote the first assembler and participated in the founding of the field of artificial intelligence.

New!!: Hash table and Nathaniel Rochester (computer scientist) · See more »

National Institute of Standards and Technology

The National Institute of Standards and Technology (NIST) is one of the oldest physical science laboratories in the United States.

New!!: Hash table and National Institute of Standards and Technology · See more »

Open addressing

Open addressing, or closed hashing, is a method of collision resolution in hash tables.

New!!: Hash table and Open addressing · See more »

Pearson hashing

Pearson hashing is a hash function designed for fast execution on processors with 8-bit registers.

New!!: Hash table and Pearson hashing · See more »

Perfect hash function

In computer science, a perfect hash function for a set is a hash function that maps distinct elements in to a set of integers, with no collisions.

New!!: Hash table and Perfect hash function · See more »

Perl

Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages, Perl 5 and Perl 6.

New!!: Hash table and Perl · See more »

PhotoDNA

PhotoDNA is a technology developed by Microsoft and improved by Hany Farid of Dartmouth College that computes hash values of images, video and audio files to identify alike images.

New!!: Hash table and PhotoDNA · See more »

PHP

PHP: Hypertext Preprocessor (or simply PHP) is a server-side scripting language designed for Web development, but also used as a general-purpose programming language.

New!!: Hash table and PHP · See more »

Power of two

In mathematics, a power of two is a number of the form where is an integer, i.e. the result of exponentiation with number two as the base and integer as the exponent.

New!!: Hash table and Power of two · See more »

Prime number

A prime number (or a prime) is a natural number greater than 1 that cannot be formed by multiplying two smaller natural numbers.

New!!: Hash table and Prime number · See more »

Programming language

A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.

New!!: Hash table and Programming language · See more »

Python (programming language)

Python is an interpreted high-level programming language for general-purpose programming.

New!!: Hash table and Python (programming language) · See more »

Quadratic probing

Quadratic probing is an open addressing scheme in computer programming for resolving collisions in hash tables—when an incoming data's hash value indicates it should be stored in an already-occupied slot or bucket.

New!!: Hash table and Quadratic probing · See more »

Rabin–Karp algorithm

In computer science, the Rabin–Karp algorithm or Karp–Rabin algorithm is a string-searching algorithm created by that uses hashing to find any one of a set of pattern strings in a text.

New!!: Hash table and Rabin–Karp algorithm · See more »

Random variable

In probability and statistics, a random variable, random quantity, aleatory variable, or stochastic variable is a variable whose possible values are outcomes of a random phenomenon.

New!!: Hash table and Random variable · See more »

Randomized algorithm

A randomized algorithm is an algorithm that employs a degree of randomness as part of its logic.

New!!: Hash table and Randomized algorithm · See more »

Real-time computing

In computer science, real-time computing (RTC), or reactive computing describes hardware and software systems subject to a "real-time constraint", for example from event to system response.

New!!: Hash table and Real-time computing · See more »

Rendezvous hashing

Rendezvous or highest random weight (HRW) hashing is an algorithm that allows clients to achieve distributed agreement on a set of k options out of a possible set of n options.

New!!: Hash table and Rendezvous hashing · See more »

Routing table

In computer networking a routing table, or routing information base (RIB), is a data table stored in a router or a networked computer that lists the routes to particular network destinations, and in some cases, metrics (distances) associated with those routes.

New!!: Hash table and Routing table · See more »

Ruby (programming language)

Ruby is a dynamic, interpreted, reflective, object-oriented, general-purpose programming language.

New!!: Hash table and Ruby (programming language) · See more »

Rust (programming language)

Rust is a systems programming language sponsored by Mozilla which describes it as a "safe, concurrent, practical language," supporting functional and imperative-procedural paradigms.

New!!: Hash table and Rust (programming language) · See more »

Salt (cryptography)

In cryptography, a salt is random data that is used as an additional input to a one-way function that "hashes" data, a password or passphrase.

New!!: Hash table and Salt (cryptography) · See more »

Search data structure

In computer science, a search data structure is any data structure that allows the efficient retrieval of specific items from a set of items, such as a specific record from a database.

New!!: Hash table and Search data structure · See more »

Search tree

In computer science, a search tree is a tree data structure used for locating specific keys from within a set.

New!!: Hash table and Search tree · See more »

Self-balancing binary search tree

In computer science, a self-balancing (or height-balanced) binary search tree is any node-based binary search tree that automatically keeps its height (maximal number of levels below the root) small in the face of arbitrary item insertions and deletions.

New!!: Hash table and Self-balancing binary search tree · See more »

Serialization

In computer science, in the context of data storage, serialization is the process of translating data structures or object state into a format that can be stored (for example, in a file or memory buffer) or transmitted (for example, across a network connection link) and reconstructed later (possibly in a different computer environment).

New!!: Hash table and Serialization · See more »

Set (abstract data type)

In computer science, a set is an abstract data type that can store unique values, without any particular order.

New!!: Hash table and Set (abstract data type) · See more »

SIAM Journal on Computing

The SIAM Journal on Computing is a scientific journal focusing on the mathematical and formal aspects of computer science.

New!!: Hash table and SIAM Journal on Computing · See more »

Smalltalk

Smalltalk is an object-oriented, dynamically typed, reflective programming language.

New!!: Hash table and Smalltalk · See more »

Software

Computer software, or simply software, is a generic term that refers to a collection of data or computer instructions that tell the computer how to work, in contrast to the physical hardware from which the system is built, that actually performs the work.

New!!: Hash table and Software · See more »

Space–time tradeoff

A space–time or time–memory trade-off in computer science is a case where an algorithm or program trades increased space usage with decreased time.

New!!: Hash table and Space–time tradeoff · See more »

Spell checker

In computing, a spell checker (or spell check) is an application program that flags words in a document that may not be spelled correctly.

New!!: Hash table and Spell checker · See more »

String (computer science)

In computer programming, a string is traditionally a sequence of characters, either as a literal constant or as some kind of variable.

New!!: Hash table and String (computer science) · See more »

SUHA (computer science)

In computer science, SUHA (Simple '''U'''niform Hashing Assumption) is a basic assumption that facilitates the mathematical analysis of hash tables.

New!!: Hash table and SUHA (computer science) · See more »

Time complexity

In computer science, the time complexity is the computational complexity that describes the amount of time it takes to run an algorithm.

New!!: Hash table and Time complexity · See more »

Translation lookaside buffer

A translation lookaside buffer (TLB) is a memory cache that is used to reduce the time taken to access a user memory location.

New!!: Hash table and Translation lookaside buffer · See more »

Trie

In computer science, a trie, also called digital tree and sometimes radix tree or prefix tree (as they can be searched by prefixes), is a kind of search tree—an ordered tree data structure that is used to store a dynamic set or associative array where the keys are usually strings.

New!!: Hash table and Trie · See more »

Unique key

In database relational modeling and implementation, a unique key (also known as a candidate key) of a relation is a minimal superkey for that relation; that is, a set of attributes such that.

New!!: Hash table and Unique key · See more »

Universal hashing

In mathematics and computing universal hashing (in a randomized algorithm or data structure) refers to selecting a hash function at random from a family of hash functions with a certain mathematical property (see definition below).

New!!: Hash table and Universal hashing · See more »

Unordered associative containers (C++)

In the programming language C++, unordered associative containers are a group of class templates in the C++ Standard Library that implement hash table variants.

New!!: Hash table and Unordered associative containers (C++) · See more »

Value (computer science)

In computer science, a value is the representation of some entity that can be manipulated by a program.

New!!: Hash table and Value (computer science) · See more »

Word (computer architecture)

In computing, a word is the natural unit of data used by a particular processor design.

New!!: Hash table and Word (computer architecture) · See more »

.NET Framework

.NET Framework (pronounced dot net) is a software framework developed by Microsoft that runs primarily on Microsoft Windows.

New!!: Hash table and .NET Framework · See more »

2-choice hashing

2-choice hashing, also known as 2-choice chaining, is "a variant of a hash table in which keys are added by hashing with two hash functions.

New!!: Hash table and 2-choice hashing · See more »

Redirects here:

Address-calculation sort, Chaining hash table, Collision resolution scheme, Direct chaining, External chaining, Hash Table, Hash map, Hash table collision, Hash table collisions, Hash tables, Hash-Based Indexes, Hash-table, Hashmap, Hashtable, Load factor (computer science), Open hashing, Rehash, Scatter storage, Separate chaining.

References

[1] https://en.wikipedia.org/wiki/Hash_table

OutgoingIncoming
Hey! We are on Facebook now! »