Tango Trees 有实际应用吗?

2023-12-25

平衡二叉搜索树 http://en.wikipedia.org/wiki/Self-balancing_binary_search_tree给出一个O(log(n))保证搜索时间。

探戈树 https://en.wikipedia.org/wiki/Tango_tree实现搜索O(log(log(n))同时牺牲每个节点的少量内存。虽然我从理论角度理解log(n) and log(log(n))产生巨大的差异,对于大多数实际应用来说它几乎没有提供任何优势。

例如,即使对于像这样的巨大数字n = 10^20(大约几千拍字节)之间的区别log(n) = 64 and log(log(n)) = 6是相当可以忽略不计的。那么 Tango 树有什么实际用途吗?


tl;dr:不,请使用展开树。

Tango 树不会给你 O(log log n) 最坏情况查找——我认为平均情况是 O(log n log log n)。它们的运行速度最多比带有预言机的二叉树慢 O(log log n) 倍,预言机执行轮换以优化访问模式。

展开树的运行速度可能比前面提到的理论魔法树慢 O(1) 倍——这是动态最优猜想。八字树比探戈树简单得多,并且启动的常数因子也较低。我无法想象探戈树保证在实际应用中会有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tango Trees 有实际应用吗? 的相关文章

  • 如何在 JavaScript 中构建树模式匹配算法?

    好吧 这是一个有点复杂的问题 但是 tl dr 基本上是如何使用 模式树 解析 实际树 如何检查特定的树实例是否与特定的模式树匹配 首先 我们有我们的结构模式树 模式树通常可以包含以下类型的节点 sequence节点 匹配一系列项目 零个或
  • 简单的排名算法

    我需要创建一个民意调查 按照项目的好坏顺序创建一个排名列表 我打算向每个用户展示两个项目 让他们选择一个他们认为更好的项目 然后多次重复这个过程 它有点类似于您在社交网络电影 我应该如何根据收到的答案对项目进行排名 看着那 这ELO国际象棋
  • 检查有效的 IMEI

    有人知道如何检查有效的 IMEI 吗 我找到了一个可以检查此页面的功能 http www dotnetfunda com articles article597 imeivalidator in vbnet aspx http www do
  • 分而治之算法找到两个有序元素之间的最大差异

    给定一个整数数组 arr 找出任意两个元素之间的差异 使得较大的元素出现在 arr 中较小的数字之后 Max Difference Max arr x arr y x gt y 例子 如果数组是 2 3 10 6 4 8 1 7 那么返回值
  • 如何为多边形创建内部螺旋?

    对于任何形状 我如何在其内部创建类似形状的螺旋 这与边界 使用 Minkowski 和 类似 尽管它会是相同形状的螺旋 而不是在形状内部创建相同的形状 我找到了这个 http www cis upenn edu cis110 13su le
  • “包含字符串”的快速索引

    在我的应用程序中 我有多达数百万个短字符串 大部分短于 32 个字符 我想实现一个带有附加列表的搜索框 该列表仅包含包含在搜索框中输入的整个字符串的元素 如何预先建立索引来快速找到此类字符串 所有排序的 STL 容器都会检查整个字符串 对于
  • 是否有一种算法可以在线性时间内计算数组反转?

    我知道有多少倒转 en wikipedia org wiki Inversion 28discrete mathematics 29 in an n 元素数组可以在 O n log n 操作使用增强型归并排序 http www geeksf
  • 为什么这个算法的Big-O复杂度是O(n^2)?

    我知道这个算法的大O复杂度是O n 2 但我不明白为什么 int sum 0 int i 1 j n n while i lt j sum 即使我们设定了j n n一开始 我们在每次迭代期间递增 i 并递减 j 因此最终的迭代次数不应该比n
  • 总和不小于 key 的数组的最小子集

    给定一个数组 假设为非负整数 我们需要找到最小长度子集 使得元素之和不小于 K K 是作为输入提供的另一个整数 是否有可能找到时间复杂度为 O n n 的大 oh 的解决方案 我目前的想法是这样的 我们可以在 O n log n 中对数组进
  • 使用 C++ 和 BOOST 读取 JSON 文件

    HTTP 服务器向我发送一个 JSON 响应 字符串 如下所示 folders id 109 parent id 110 path 1 105 110 id 110 parent id 105 path 1 105 files id 26
  • c# GDI边缘空白检测算法

    我正在寻找解决方案检测边缘空白c 位图 来自 c 托管 GDI 库 图像将是透明的 or white 大多数 400x 图片的尺寸为 8000x8000px 边缘周围有大约 2000px 的空白 找出边缘的最有效方法是什么 x y 高度和宽
  • 颜色逻辑算法

    我们正在构建一个体育应用程序 并希望将团队颜色融入到应用程序的各个部分 现在 每个团队都可以使用几种不同的颜色来表示 我想做的是执行检查以验证两个团队颜色是否在彼此一定的范围内 这样我就不会显示两个相似的颜色 因此 如果团队 1 的主要团队
  • GXT 3 中树的单击处理程序?

    我一直在翻阅GXT3 s Tree API http dev sencha com deploy gxt 3 0 0 rc2 javadoc gxt com sencha gxt widget core client tree Tree h
  • 计算序列而无法存储值?

    问题陈述 here http www spoj com problems EC SER 令 S 为无限整数序列 S0 a S1 b Si Si 2 Si 1 对于所有 i gt 2 你有两个整数 a 和 b 您必须回答有关序列中第 n 个元
  • 我如何开始玩五子棋?

    我读到Gomoku http en wikipedia org wiki Gomoku它可以使用 Minimax 和 Alpha Beta 剪枝算法来实现 所以 我阅读了这些算法 现在了解了游戏将如何解决 但是当我坐下来编写代码时 我面临着
  • 你能用 C# 编写一个同样优雅的排列函数吗?

    我非常喜欢这个 6 行解决方案 并尝试在 C 中复制它 基本上 它会排列数组的元素 def permute xs pre if len xs 0 yield pre for i x in enumerate xs for y in perm
  • 大 ר 符号到底代表什么?

    我真的很困惑大 O 大 Omega 和大 Theta 表示法之间的区别 我知道大 O 是上限 大 Omega 是下限 但是大 theta 到底代表什么 我读过这意味着紧束缚 但是 这是什么意思 首先我们来了解一下什么是大O 大Theta和大
  • 用于在链表中查找结点的生产代码

    我在一次采访中被问到这个问题 我被要求编写代码 用于在 O 1 空间和线性时间的生产环境中在链表 其形式为 Y 形式 双臂不一定相等 中查找结点 我想出了这个解决方案 我以前在某处见过 1 Measure lengths of both l
  • 添加边后更新最大流量

    考虑我们有一个网络流量 并使用 Edmond Karp 算法 我们已经拥有网络上的最大流量 现在 如果我们向网络添加任意边 具有一定容量 更新最大流量的最佳方法是什么 我正在考虑更新关于新边缘的残差网络 并再次寻找增强路径 直到找到新的最大
  • 查找最接近点的多边形顶点的索引

    Heading 我需要找到最接近点的多边形的索引 所以在这种情况下 输出将是 4 和 0 这样 如果添加了红点 我就知 道将顶点放置在数组中的位置 有谁知道从哪里开始 抱歉 如果标题有误导性 我不知道如何正确表达它 In this case

随机推荐

  • 如何从纬度和经度找出地图瓦片坐标?

    我正在使用 Mapbox 矢量切片从后端进程收集特定数据 在示例中 他们提供了曼哈顿图块的链接 http a tiles mapbox com v3 examples map zr0njcqy 14 4823 6160 png http a
  • 如何在管道中使用导管下降功能?

    我有一个简单的任务 从文件中读取一堆行并对每一行执行一些操作 除了第一个 这是一些需要忽略的标题 所以我想我应该尝试一下管道 printFile src runResourceT CB sourceFile src CT decode CT
  • 有没有办法获得 dask 中每组最大的项目?

    我有以下数据集 location category percent A 5 100 0 B 3 100 0 C 2 50 0 4 13 0 D 2 75 0 3 59 0 4 13 0 5 4 0 我正在尝试获取数据框中按位置分组的最大类别
  • 使用别名覆盖内置命令

    我正在尝试创建一个覆盖的别名cd命令 这将在 真实 之前和之后执行一个脚本cd 这是我到目前为止所拥有的 alias cd echo before cd 1 echo after 这将执行echo before and echo after
  • 识别通过蓝牙与 PixelSense 配对的移动设备

    我希望能够通过蓝牙将 Microsoft PixelSense 硬件与多个移动设备配对 并且我希望 PixelSense 知道哪个设备是哪个 因此 如果我将两部手机放在桌子上 PixelSense 应该能够通过设备名称来标记它们 我最初的想
  • html 模板保存在哪里?

    我有一个单页应用程序 目前我的模板存储在index html中 例如 以这种方式存储它们是最佳实践吗 我发现了jQuery 模板 我应该把它们放在哪里 https stackoverflow com questions 4719828 jq
  • Redis 作为独特的原子 ID 生成器 - Web 应用程序避免竞争条件的线程安全方式

    我计划使用 Redis 作为唯一的原子 id 生成器 但是 我担心多个浏览器可能会同时发出 Web 请求 我想知道 使以下操作原子化的常见做法是什么 get id from redis if id is not found insert i
  • 如何从环境变量将动态主题名称传递给@KafkaListener(topics)

    我正在写一个卡夫卡消费者 我需要将环境变量主题名称传递给 KafkaListener topics 这是我到目前为止所尝试过的 import org springframework beans factory annotation Auto
  • 使用 itextsharp 根据大小将 pdf 拆分为更小的 pdf

    因此 我们有一些非常低效的代码 可以根据允许的最大大小将 pdf 分成更小的块 又名 如果最大大小为 10megs 则将跳过 8 meg 文件 而将根据页数拆分 16 meg 文件 这是我继承的代码 我觉得必须有一种更有效的方法来做到这一点
  • numpy 中的数组切片

    今天我使用numpy数组进行一些计算 发现一个奇怪的问题 例如 假设我已经在Ipython中导入了numpy arange 并且我运行了一些脚本 如下所示 In 5 foo arange 10 In 8 foo1 foo arange 3
  • 如何通过 AJAX POST 将“数据”发送到 ASMX Web 服务?

    我可以成功地从我的网络服务接收值 因此在这方面脚本工作正常 不过 我现在尝试使用下面的 数据 字段将数据发送到网络服务 我不知道如何将一个简单的字符串 例如 test 发送到网络服务 这是我的网络方法期望的参数 任何帮助深表感谢 例如 fu
  • 将表单传递给服务层与原始输入

    验证表单并将其过滤后的输入传递到服务层更好 还是将原始输入传递到服务层并让服务验证输入 有或没有表单实例 更好 显然 如果是后者 控制器仍然需要访问表单 以便将其发送到视图进行渲染 如果是这样 您是否只需通过服务 service gt ge
  • bytesWritten,但其他设备从未收到 NSStreamEventHasBytesAvailable 事件

    我已经在 iPhone 和 Mac 之间建立了 Bonjour 网络 用户在 Mac 中显示的表格中选择 iPhone 的网络服务 并在两侧创建并打开一对流 iPhone 首先向 Mac 发送一个代码 整数 Mac成功接收 用户输入和处理暂
  • 将 _redirects 文件添加到 Netlify 上托管的 Vue SPA 的根路径

    我正在使用 Vue CLI 开发一个单页应用程序 并希望历史推送状态能够工作 以便获得干净的 URL 我必须遵循这个 https www netlify com docs redirects history pushstate and si
  • 类型错误:“str”不支持缓冲区接口

    我从我的原始代码发布 crystal open vmises dat r crystalincrement pickle load crystal crystaldir pickle load crystal crystalface pic
  • 将非数字替换为空字符串

    在我们的项目中快速添加需求 我们的数据库中保存电话号码的字段设置为仅允许 10 个字符 那么 如果我通过 913 444 5555 或其他任何内容 是否有一种快速方法可以通过某种特殊的替换函数运行字符串 我可以向它传递一组允许的字符 Reg
  • 如何获取 msvc 所需的运行时库的位置

    我有 CMake 的自定义包装器 它为各种平台 win32 SunOS 等 和不同的编译器执行配置 编译和创建发行版 我需要将所有需要的运行时库放入 distrib 中 nix 的 libgcc s so libstdc so 如 OS m
  • ViewController 内的 UINavigationController,视图顶部的间隙

    我正在开发一个通用应用程序 并尝试在 iPhone 和 iPad 版本之间共享尽可能多的代码 我需要使用 TabBarController 作为我的根视图控制器 虽然我想在每个选项卡中使用 SplitViewController 但 Spl
  • gitignore 根本不起作用。我无法让它忽略 .DS_Store 和 .gitignore 文件

    I have gitignored DS Store and gitignore文件 但仍然可以在 git status 中看到它们 有人可以向我解释如何确保在检查状态时我试图忽略的文件不会出现吗 git status Untracked
  • Tango Trees 有实际应用吗?

    平衡二叉搜索树 http en wikipedia org wiki Self balancing binary search tree给出一个O log n 保证搜索时间 探戈树 https en wikipedia org wiki T