Asymptotic complexity of algorithms: Difference between revisions
Line 17: | Line 17: | ||
== Asymptotic complexity == | == Asymptotic complexity == | ||
For a selection <math>n_1,\ldots,n_k</math> of | For a selection of <math>k</math> characterizing parameters for an [[Algorithms and correctness#Algorithmic problem|algorithmic problem]], let <math>\mathcal{I}(n_1,\ldots,n_k)</math> denote the set of all instances for which these parameters assume the values <math>n_1,\ldots,n_k</math> | ||
# In the '''worst case''': by the function <math>f:\mathbb{N}^k\rightarrow\mathbb{R}^+</math> such that the maximum number of operations for any <math> | |||
an [[Algorithms and correctness#Algorithm|algorithm]] is defined as follows. the '''asymptotic complexity''' of | |||
# In the '''worst case''': by the function <math>f:\mathbb{N}^k\rightarrow\mathbb{R}^+</math> such that <math>f(n_1,\ldots,n_k)</math> is the maximum number of operations executed for any instance is <math>\mathcal{I}(n_1,\ldots,n_k)</math>. | |||
# best case: | # best case: | ||
# average case: | # average case: |
Revision as of 12:17, 28 May 2015
Corresponding page on the original wiki (to be ported asap):
Asymptotic complexity vs. run time
Roughly speaking, the run time of an algorithm is measured by the number of operations executed by the machine. However, in theoretical considerations, the run time is estimated by the algorithm's asymptotic complexity. In asymptotic considerations, constant multiplicative factors are completely disregarded. Therefore, it does not matter how fast the machine and how smart the algorithm's implementation is.
Characterizing parameters
For the inputs of an algorithmic problem, one or more characterizing (numerical) parameters are to be selected, from which the total size of an input can be computed (or, at least, quite tightly bounded from above and from below).
Examples:
- The number of elements in sets, maps, and sequences and the (maximum) size of an element in a set, map, or sequence.
- The number of nodes and the number of edges/arcs in a graph.
Asymptotic complexity
For a selection of [math]\displaystyle{ k }[/math] characterizing parameters for an algorithmic problem, let [math]\displaystyle{ \mathcal{I}(n_1,\ldots,n_k) }[/math] denote the set of all instances for which these parameters assume the values [math]\displaystyle{ n_1,\ldots,n_k }[/math]
an algorithm is defined as follows. the asymptotic complexity of
- In the worst case: by the function [math]\displaystyle{ f:\mathbb{N}^k\rightarrow\mathbb{R}^+ }[/math] such that [math]\displaystyle{ f(n_1,\ldots,n_k) }[/math] is the maximum number of operations executed for any instance is [math]\displaystyle{ \mathcal{I}(n_1,\ldots,n_k) }[/math].
- best case:
- average case:
Remar
- An algo may have different complexity bounds, based on different parameters
Input size and polynomial complexity
The size of an input is the
For a given input,