Probabilistic analysis of algorithms
In analysis of algorithms, probabilistic analysis or algorithms is an approach to estimate the computational complexity of an algorithm or a computational problem. It starts from an assumption about a probabilistic distribution of the set of all possible inputs. This assumption is then used to design an efficient algorithm or to derive the complexity of a known algorithms.
This approach is not the same as that of probabilistic algorithms, but the two may be combined.
For non-probabilistic, more specifically, for deterministic algorithms, the most common types of complexity estimates are
- the average-case complexity (expected time complexity), in which given an input distribution, the expected time of an algorithm is evaluated
- the almost always complexity estimates, in which given an input distribution, it is evaluated that the algorithm admits a given complexity estimate with probability O(1).
In probabilistic analysis of probabilistic (randomized) algorithms, the distributions or averaging for all possible choices in randomized steps are also taken into an account, in addition to the input distributions.