Time complexity 三元搜索树和二元搜索树哪个更快?

Time complexity 三元搜索树和二元搜索树哪个更快?,time-complexity,binary-search-tree,ternary-search-tree,Time Complexity,Binary Search Tree,Ternary Search Tree,ternery搜索树需要O(log(n)+k)比较,其中n是字符串的数量,k是要搜索的字符串的长度,二元搜索树需要log(n)比较,那么为什么TST比BST快呢?因为在三元情况下是log3(n),而在二元情况下是log2(n).三元搜索树是专门为存储字符串而设计的,因此我们的分析需要考虑到存储的每个项目都是具有一定长度的字符串。假设数据结构中最长字符串的长度为L,总共有n个字符串 在执行查找时,二进制搜索树只进行O(logn)比较,这是正确的。但是,由于存储在树中的项目都是字符串,因此每个比较都

ternery搜索树需要O(log(n)+k)比较,其中n是字符串的数量,k是要搜索的字符串的长度,二元搜索树需要log(n)比较,那么为什么TST比BST快呢?

因为在三元情况下是log3(n),而在二元情况下是log2(n).

三元搜索树是专门为存储字符串而设计的,因此我们的分析需要考虑到存储的每个项目都是具有一定长度的字符串。假设数据结构中最长字符串的长度为L,总共有n个字符串

在执行查找时,二进制搜索树只进行O(logn)比较,这是正确的。但是,由于存储在树中的项目都是字符串,因此每个比较都需要时间O(L)来完成。因此,在这种情况下,使用二叉搜索树进行搜索的实际运行时间是O(L logn),因为存在O(logn)比较,每次都要花费O(L)时间

现在,让我们考虑三元搜索树。使用标准TST实现,对于要查找的输入字符串的每个字符,我们执行BST查找以查找要下降到的树。这需要时间O(logn),我们在总运行时间O(logn)中执行L次,与BST查找时间匹配。但是,实际上,您可以通过替换三元搜索树中的标准BST(其权重由每个子树中的字符串数给出)来改进此功能,可以使用更仔细的分析来显示查找的总运行时间为O(L+log n),这比标准BST查找快得多


希望这有帮助

-1,对不起。三元搜索树在日志中找不到元素₃(n) 时间。日志₃(n) 如果你有某种假设的三元树,三个孩子中的每一个都有三分之一的后代,那么时间就是你得到的;但在一般情况下,中间的孩子通常只有很小比例的后代。