Concepts inApproximate counting of inversions in a data stream
Data stream
In telecommunications and computing, a data stream is a sequence of digitally encoded coherent signals used to transmit or receive information that is in the process of being transmitted. In electronics and computer architecture, a data flow determines for which time which data item is scheduled to enter or leave which port of a systolic array, a Reconfigurable Data Path Array or similar pipe network, or other processing unit or block.
more from Wikipedia
Counting
Counting is the action of finding the number of elements of a finite set of objects.
more from Wikipedia
Inversion (discrete mathematics)
In computer science and discrete mathematics, an inversion in a sequence of numbers is a pair of numbers in the sequence that are "out of order" with respect to an ascending or descending order.
more from Wikipedia
Streaming algorithm
In computer science, streaming algorithms are algorithms for processing data streams in which the input is presented as a sequence of items and can be examined in only a few passes (typically just one). These algorithms have limited memory available to them (much less than the input size) and also limited processing time per item. These constraints may mean that an algorithm produces an approximate answer based on a summary or "sketch" of the data stream in memory.
more from Wikipedia
Randomization
Randomization is the process of making something random; this means: Generating a random permutation of a sequence (such as when shuffling cards). Selecting a random sample of a population. Generating random numbers: see Random number generation. Transforming a data stream (such as when using a scrambler in telecommunications).
more from Wikipedia
Randomized algorithm
A randomized algorithm is an algorithm which employs a degree of randomness as part of its logic. The algorithm typically uses uniformly random bits as an auxiliary input to guide its behavior, in the hope of achieving good performance in the "average case" over all possible choices of random bits. Formally, the algorithm's performance will be a random variable determined by the random bits; thus either the running time, or the output (or both) are random variables.
more from Wikipedia
Deterministic algorithm
In computer science, a deterministic algorithm is an algorithm which, in informal terms, behaves predictably. Given a particular input, it will always produce the same output, and the underlying machine will always pass through the same sequence of states. Deterministic algorithms are by far the most studied and familiar kind of algorithm, as well as one of the most practical, since they can be run on real machines efficiently.
more from Wikipedia
Permutation
In mathematics, the notion of permutation is used with several slightly different meanings, all related to the act of permuting (rearranging) objects or values. Informally, a permutation of a set of objects is an arrangement of those objects into a particular order. For example, there are six permutations of the set {1,2,3}, namely (1,2,3), (1,3,2), (2,1,3), (2,3,1), (3,1,2), and (3,2,1). One might define an anagram of a word as a permutation of its letters.
more from Wikipedia