|
|
|
|
|
by okl
934 days ago
|
|
I try to explain with a practical example: Let's say I define a list with worst-case lookup time of O(n). Simplified this means that when I have a list of 100 elements and append 1 element, then the worst case lookup time increases from 100C to 101C where C is some constant time. The O(n) tells me how the runtime of the operation changes if I alter the input size. Now the OP's idea is this: I'll fix the size of allowed elements in my list to some maximum value, lets say n=5, and then you always end up with the same worst-case time, O(1), because the input size is constant. With 5 elements it looks silly but you could say n = (very large number that won't be exceeded ever) and conclude that O(n=1). In OPs case the n is the number of bits in the key (implies a radix-tree) => If an algorithm is defined as being unscalable (fixed input), what sense does it make to describe that it scales constantly with input size? |
|
> If an algorithm is defined as being unscalable (fixed input), what sense does it make to describe that it scales constantly with input size?
I'll answer your question with another: in what cases does it make sense to describe the scaling behavior of an algorithm as O(1)?