What does O(log n) mean exactly?

后端 未结 30 2394
执念已碎
执念已碎 2020-11-22 01:19

I am learning about Big O Notation running times and amortized times. I understand the notion of O(n) linear time, meaning that the size of the input affects the g

30条回答
  •  时光说笑
    2020-11-22 01:58

    Many good answers have already been posted to this question, but I believe we really are missing an important one - namely, the illustrated answer.

    What does it mean to say that the height of a complete binary tree is O(log n)?

    The following drawing depicts a binary tree. Notice how each level contains double the number of nodes compared to the level above (hence binary):

    Binary search is an example with complexity O(log n). Let's say that the nodes in the bottom level of the tree in figure 1 represents items in some sorted collection. Binary search is a divide-and-conquer algorithm, and the drawing shows how we will need (at most) 4 comparisons to find the record we are searching for in this 16 item dataset.

    Assume we had instead a dataset with 32 elements. Continue the drawing above to find that we will now need 5 comparisons to find what we are searching for, as the tree has only grown one level deeper when we multiplied the amount of data. As a result, the complexity of the algorithm can be described as a logarithmic order.

    Plotting log(n) on a plain piece of paper, will result in a graph where the rise of the curve decelerates as n increases:

提交回复
热议问题