时间复杂度
O(1)
- 数组下表查询
O(n)
- 链表元素查询,最坏情况是要查n次。
O(logn)
- 平衡二叉树
- 数组二分法查找指定元素
开根号
比如16长度的数组,想要找到指定元素最多需要4次、
16→8→4→2→1
红黑树(平衡二叉树、完全二叉树)
比如查找某个元素的次数最多查到最后一层,跟树的层级一致。B→J→W→X
O(log n)
复杂度解释:
- 在一个理想平衡的二叉搜索树中,每次查找操作从根节点开始,通过比较目标值与当前节点的值来决定是向左还是向右子树进行下一步查找。
- 每次比较后,查找范围大致减半,这类似于二分查找的逻辑。
- 如果树完全平衡,则树的高度
h
与节点数目n
之间的关系近似为h = log₂(n+1)
。 - 因此,在最坏情况下,查找操作需要的时间复杂度为
O(log n)
。