Time complexity 在平衡二叉树中搜索项目

Time complexity 在平衡二叉树中搜索项目,time-complexity,binary-tree,big-o,Time Complexity,Binary Tree,Big O,如果我有一个平衡的二叉树,我想在其中搜索一个项目,那么大的时间复杂度会是O(n)吗?在二叉树中搜索一个项目,不管它是否平衡,是否会改变O(n)的大时间复杂度?我知道如果我们有一个平衡的BST,那么搜索一个项目就相当于BST的高度so O(logn),但是普通的二叉树呢?平衡的BST中的O(logn)搜索时间由两个属性简化: 树中的元素是通过比较来排列的 这棵树(大致)平衡了。 如果您丢失了这些属性中的任何一个,那么您将不再获得O(logn)搜索时间 如果您正在搜索未排序(也称为非BST)的平衡二

如果我有一个平衡的二叉树,我想在其中搜索一个项目,那么大的时间复杂度会是O(n)吗?在二叉树中搜索一个项目,不管它是否平衡,是否会改变O(n)的大时间复杂度?我知道如果我们有一个平衡的BST,那么搜索一个项目就相当于BST的高度so O(logn),但是普通的二叉树呢?

平衡的BST中的O(logn)搜索时间由两个属性简化:

  • 树中的元素是通过比较来排列的
  • 这棵树(大致)平衡了。 如果您丢失了这些属性中的任何一个,那么您将不再获得O(logn)搜索时间

    如果您正在搜索未排序(也称为非BST)的平衡二叉树以查找特定值,则必须检查树中的每个节点以确保找到您要查找的值,因此需要O(n)时间

    对于一个不平衡的树,如果您将失衡的最坏情况可视化,其中每个节点只有一个子节点,而叶节点基本上是一个链表,那么这可能会有所帮助。如果您的BST完全(或大部分)不平衡,那么搜索将花费O(n)个时间,就像一个链表一样


    如果未排序的二叉树是不平衡的,那么它仍然有n个节点,并且它们仍然未排序,因此它仍然需要O(n)个时间。

    更像是一个数学问题。你可能会得到更多的帮助