algorithm - 既然有三元搜索,为什么还要用二分搜索呢?

标签 algorithm data-structures binary-tree ternary-tree

我最近听说了三元搜索,我们将一个数组分成 3 个部分并进行比较。这里将进行两次比较,但它将数组减少到 n/3。为什么人们不用这么多?

最佳答案

实际上,人们确实对任意 k 使用 k 叉树。

然而,这是一种权衡。

要在 k 叉树中查找元素,您需要大约 k*ln(N)/ln(k) 次操作(记住换基公式)。 k 越大,您需要的整体操作就越多。

您所说的逻辑扩展是“为什么人们不对 N 个数据元素使用 N 叉树?”。这当然是一个数组。

关于algorithm - 既然有三元搜索,为什么还要用二分搜索呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498382/

相关文章:

c - 3d 网格中的转发(绘图)线

algorithm - 反向多重索引

c++ - 在已排序的双向链表中插入节点

regex - 识别哈希键的 "type"

c++ - C++ 中的 ZigZag 二叉树遍历

c++ - 下一个词法 "permutation"算法

algorithm - 将二次算法简化为线性时间

database - 在 Redis 中搜索与给定模式不匹配的键

C++ 打印二叉搜索树

java - 从叶子创建求和树