Asymptotic Bounds
-
asymptotic upper bound (strict)
-
asymptotic upper bound
-
asymptotically tight bounds
-
asymptotic lower bound
-
asymptotic lower bound (strict)
-
The running time of an algorithm is the number of primitive operations or steps executed.
- The worst-case running time (denoted by ) is the maximum number of steps taken on any instance of size .
-
(In general, )
-
If exists, then
-
Transitivity
- the same for
-
Reflexivity
- for
-
see also Order of sequences
-
. (where )
-
(where )
-
(where )
-
-
-
-
-
If then (given and are non-negative)
-
-
-
() (e3.1-2)
-
(e3.1-7)
-
(e3.1-4)
-
If is a polynomial of degree , in which the leading coefficient is positive, then
-
-
(In particular, every exponential grows faster than every polynomial)
Common Running Times
Name | Running Time | |
---|---|---|
constant time | ||
log-logarithmic | ||
logarithmic time | ||
polylogarithmic time | ||
fractional power | ||
linear time | ||
linearithmic time | ||
quasilinear time | ||
quadratic time | ||
cubic time | ||
polynomial time | ||
exponential time | ||
factorial time |
Chapter 2: Algorithm Analysis
2.1: Computational Tractability
-
Proposed Definition of Efficiency:
- An algorithm is efficient if it performs well on real input instances.
- An algorithm is efficient if it performs quantitatively better than brute-force search in worst-case scenarios.
- An algorithm is efficient if it runs in polynomial time.
-
A Brute-force search is a straightforward but typically inefficient approach involving the examination of all possible solutions