Wikipedia defines it to be
An algorithm is said to be of polynomial time if its running time is upper bounded by a polynomial expression in the size of the input for the algorithm, i.e., $T(n) = O(n^k)$ for some constant k.
The algorithm runs in strongly polynomial time if [8]
the number of operations in the arithmetic model of computation is bounded by a polynomial in the number of integers in the input instance; and
the space used by the algorithm is bounded by a polynomial in the size of the input.
In Bernhard Korte, Jens Vygen, Combinatorial Optimization:
Definition 1.4.
An algorithm with rational input is said to run in polynomial time if
- there is an integer k such that it runs in $O(n^k)$ time, where n is the input size, and
- all numbers in intermediate computations can be stored with $O(n^k)$ bits.
An algorithm with arbitrary input is said to run in strongly polynomial time if
- there is an integer k such that it runs in $O(n^k)$ time for any input consisting of n numbers and
- it runs in polynomial time for rational input.
Please correct me if I am wrong. Following are the literal differences I noticed:
For polynomial time algorithms, Korte and Vygen's definition is "the Wikipedia's definition + polynomial storage space".
For strongly polynomial time algorithms, Korte and Vygen's definition and Wikipedia's definition both require polynomial time in the input storage size. But K and V's additionally requires polynomial time in the number of numbers in any input, while Wikipedia's additionally requires polynomial storage space in the input size.
So are K and V's and Wikipedia's definitions for these two concepts equivalent, respectively? What other differences and relations are between them?
Thanks and regards!