Disjoint-set Data Structure
In computer science, a disjoint-set data structure, also called a union–find data structure or merge–find set, is a data structure that stores a collection of Disjoint sets, disjoint (non-overlapping) Set (mathematics), sets. Equivalently, it stores a partition of a set into disjoint subsets. It provides operations for adding new sets, merging sets (replacing them with their Union (set theory), union), and finding a representative member of a set. The last operation makes it possible to determine efficiently whether any two elements belong to the same set or to different sets. While there are several ways of implementing disjoint-set data structures, in practice they are often identified with a particular implementation known as a disjoint-set forest. This specialized type of Forest (graph theory), forest performs union and find operations in near-constant Amortized analysis, amortized time. For a sequence of addition, union, or find operations on a disjoint-set forest with ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Bernard A
Bernard (''Bernhard'') is a French and West Germanic masculine given name. It has West Germanic origin and is also a surname. The name is attested from at least the 9th century. West Germanic ''Bernhard'' is composed from the two elements ''bern'' "bear" and ''hard'' "brave, hardy". Its native Old English cognate was ''Beornheard'', which was replaced or merged with the French form ''Bernard'' that was brought to England after the Norman Conquest. The name ''Bernhard'' was notably popular among Old Frisian speakers. Its wider use was popularized due to Saint Bernhard of Clairvaux (canonized in 1174). In Ireland, the name was an anglicized form of Brian. Geographical distribution Bernard is the second most common surname in France. As of 2014, 42.2% of all known bearers of the surname ''Bernard'' were residents of France (frequency 1:392), 12.5% of the United States (1:7,203), 7.0% of Haiti (1:382), 6.6% of Tanzania (1:1,961), 4.8% of Canada (1:1,896), 3.6% of Nigeria (1:12,221), ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Communications Of The ACM
''Communications of the ACM'' (''CACM'') is the monthly journal of the Association for Computing Machinery (ACM). History It was established in 1958, with Saul Rosen as its first managing editor. It is sent to all ACM members. Articles are intended for readers with backgrounds in all areas of computer science and information systems. The focus is on the practical implications of advances in information technology and associated management issues; ACM also publishes a variety of more theoretical journals. The magazine straddles the boundary of a science magazine, trade magazine, and a scientific journal. While the content is subject to peer review, the articles published are often summaries of research that may also be published elsewhere. Material published must be accessible and relevant to a broad readership. From 1960 onward, ''CACM'' also published algorithms, expressed in ALGOL. The collection of algorithms later became known as the Collected Algorithms of the ACM. CA ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
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. It is supplied with standard libraries in many modern mainstream programming languages. Dynamic arrays overcome a limit of static arrays, which have a fixed capacity that needs to be specified at allocation. A dynamic array is not the same thing as a dynamically allocated array or variable-length array, either of which is an array whose size is fixed when the array is allocated, although a dynamic array may use such a fixed-size array as a back end.See, for example, thsource code of java.util.ArrayList class from OpenJDK 6 Bounded-size dynamic arrays and capacity A simple dynamic array can be constructed by allocating an array of fixed-size, typically larger than the number of elements immediately required. The elements of the dynamic array are stored contiguous ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Parent Pointer Tree
In computer science, an in-tree or parent pointer tree is an -ary tree data structure in which each node has a pointer to its parent node, but no pointers to child nodes. When used to implement a set of stacks, the structure is called a spaghetti stack, cactus stack or saguaro stack (after the saguaro, a kind of cactus). Parent pointer trees are also used as disjoint-set data structures. The structure can be regarded as a set of singly linked lists that share part of their structure, in particular, their tails. From any node, one can traverse to ancestors of the node, but not to any other node. Use in compilers A compiler for a language such as C creates a spaghetti stack as it opens and closes symbol tables representing block scopes. When a new block scope is opened, a symbol table is pushed onto a stack. When the closing curly brace is encountered, the scope is closed and the symbol table is popped. But that symbol table is remembered, rather than destroyed, and it remem ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
![]() |
Coq (software)
The Rocq Prover (previously known as Coq) is an interactive theorem prover first released in 1989. It allows the expression of mathematical assertions, mechanical checking of proofs of these assertions, assists in finding formal proofs using proof automation routines and extraction of a certified program from the constructive proof of its formal specification. Rocq works within the theory of the ''calculus of inductive constructions'', a derivative of the '' calculus of constructions''. Rocq is not an automated theorem prover but includes automatic theorem proving tactics ( procedures) and various decision procedures. The Association for Computing Machinery awarded Thierry Coquand, Gérard Huet, Christine Paulin-Mohring, Bruno Barras, Jean-Christophe Filliâtre, Hugo Herbelin, Chetan Murthy, Yves Bertot, and Pierre Castéran with the 2013 ACM Software System Award for Rocq (when it was still named Coq). Overview When viewed as a programming language, Rocq implements a ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
Proof Assistant
In computer science and mathematical logic, a proof assistant or interactive theorem prover is a software tool to assist with the development of formal proofs by human–machine collaboration. This involves some sort of interactive proof editor, or other interface, with which a human can guide the search for proofs, the details of which are stored in, and some steps provided by, a computer A computer is a machine that can be Computer programming, programmed to automatically Execution (computing), carry out sequences of arithmetic or logical operations (''computation''). Modern digital electronic computers can perform generic set .... A recent effort within this field is making these tools use artificial intelligence to automate the formalization of ordinary mathematics. System comparison * ACL2 – a programming language, a first-order logical theory, and a theorem prover (with both interactive and automatic modes) in the Boyer–Moore tradition. * Rocq (so ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Persistent Data Structure
In computing, a persistent data structure or not ephemeral data structure is a data structure that always preserves the previous version of itself when it is modified. Such data structures are effectively immutable, as their operations do not (visibly) update the structure in-place, but instead always yield a new updated structure. The term was introduced in Driscoll, Sarnak, Sleator, and Tarjan's 1986 article. A data structure is partially persistent if all versions can be accessed but only the newest version can be modified. The data structure is fully persistent if every version can be both accessed and modified. If there is also a meld or merge operation that can create a new version from two previous versions, the data structure is called confluently persistent. Structures that are not persistent are called ''ephemeral''. These types of data structures are particularly common in logical and functional programming, as languages in those paradigms discourage (or fully forbid) ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Michael Saks (mathematician)
Michael Ezra Saks is an American mathematician. He is currently the Department Chair of the Mathematics Department at Rutgers University (2017–) and from 2006 until 2010 was director of the Mathematics Graduate Program at Rutgers University. Saks received his Ph.D. from the Massachusetts Institute of Technology in 1980 after completing his dissertation titled ''Duality Properties of Finite Set Systems'' under his advisor Daniel J. Kleitman. A list of his publications and collaborations may be found at DBLP. In 2016 he became a Fellow of the Association for Computing Machinery. Research Saks' research in computational complexity theory, combinatorics, and graph theory has contributed to the study of lower bounds in order theory, randomized computation, and space–time tradeoff. In 1984, Saks and Jeff Kahn showed that there exist a tight information-theoretical lower bound for sorting under partially ordered information up to a multiplicative constant. Ithe first super-lin ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Michael Fredman
Michael Lawrence Fredman is an emeritus professor at the Computer Science Department at Rutgers University, United States. He earned his Ph.D. from Stanford University in 1972 under the supervision of Donald Knuth. He was a member of the mathematics department at the Massachusetts Institute of Technology from 1974 to 1976. and of the Computer Science and Engineering department at the University of California, San Diego The University of California, San Diego (UC San Diego in communications material, formerly and colloquially UCSD) is a public university, public Land-grant university, land-grant research university in San Diego, California, United States. Es ... until 1992. . Among his contributions to computer science are the development of the [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Pointer Algorithm
In Computer Science, a pointer algorithm (sometimes called a pointer machine, or a reference machine; see the article Pointer machine for a close but non-identical concept) is a type of algorithm that manages a linked data structure. This concept is used as a model for lower-bound proofs and specific restrictions on the linked data structure and on the algorithm's access to the structure vary. This model has been used extensively with problems related to the disjoint-set data structure In computer science, a disjoint-set data structure, also called a union–find data structure or merge–find set, is a data structure that stores a collection of Disjoint sets, disjoint (non-overlapping) Set (mathematics), sets. Equivalently, it .... Thus, Tarjan and La Poutré used this model to prove lower bounds on the amortized complexity of a disjoint-set data structure (La Poutré also addressed the interval split-find problem). Blum used this model to prove a lower bound on the single o ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Ackermann Function
In computability theory, the Ackermann function, named after Wilhelm Ackermann, is one of the simplest and earliest-discovered examples of a total function, total computable function that is not Primitive recursive function, primitive recursive. All primitive recursive functions are total and computable, but the Ackermann function illustrates that not all total computable functions are primitive recursive. After Ackermann's publication of his function (which had three non-negative integer arguments), many authors modified it to suit various purposes, so that today "the Ackermann function" may refer to any of numerous variants of the original function. One common version is the two-argument Ackermann–Péter function developed by Rózsa Péter and Raphael Robinson. This function is defined from the recurrence relation \operatorname(m+1, n+1) = \operatorname(m, \operatorname(m+1, n)) with appropriate Base case (recursion), base cases. Its value grows very rapidly; for example, \o ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |
|
Robert Tarjan
Robert Endre Tarjan (born April 30, 1948) is an American computer scientist and mathematician. He is the discoverer of several graph theory algorithms, including his strongly connected components algorithm, and co-inventor of both splay trees and Fibonacci heaps. Tarjan is currently the James S. McDonnell Distinguished University Professor of Computer Science at Princeton University. Personal life and education He was born in Pomona, California. His father, George Tarjan (1912–1991), raised in Hungary, was a child psychiatrist, specializing in mental retardation, and ran a state hospital. Robert Tarjan's younger brother James became a chess grandmaster. As a child, Robert Tarjan read a lot of science fiction, and wanted to be an astronomer. He became interested in mathematics after reading Martin Gardner's mathematical games column in Scientific American. He became seriously interested in math in the eighth grade, thanks to a "very stimulating" teacher. While he was in hig ... [...More Info...] [...Related Items...] OR: [Wikipedia] [Google] [Baidu] |