Characterizing Running Times

Which sorting algorithm is faster once the input size grows large enough, insertion sort or merge sort?
Once the input size grows large enough, merge sort is faster.

What is the worst-case running time of insertion sort?
The worst-case running time of insertion sort is .

What is the worst-case running time of merge sort?
The worst-case running time of merge sort is .

How often is the extra precision of determining the exact running time of an algorithm useful?
The extra precision of determining the exact running time of an algorithm is rarely useful.

What happens as to the multiplicative constants and lower-order terms of an exact running time as the input size grows?
As the input size grows, the multiplicative constants and lower-order terms of an exact running time are dominated by the effects of the input size itself.

What are you studying when you look at input sizes large enough to make only the order of growth of the running time relevant?
When you look at input sizes large enough to make only the order of growth of the running time relevant, you are studying asymptotic efficiency.

For what inputs is an asymptotically efficient algorithm the best choice for?
An asymptotically efficient algorithm is the best choice for all but very small inputs.

...

O-notation, -notation, and -notation

...

O-notation

What does O-notation characterize?
O-notation characterizes an upper bound on the asymptotic behavior of a function.

What does O-notation say about a function?
O-notation says that a function grows no faster than a certain rate based on the highest-order term.

What is the rate of growth of the function ?
The rate of growth of the function is .

How would you write the O-notation for the function ?
You would write the O-notation for the function as .