TreeSet迭代的时间复杂度是多少?

2023-11-23

在我的代码中,JavaTreeSet迭代是主要的时间因素。在观察这个系统时,我相信它的复杂度是 O(n) 。任何人都可以验证这一点吗?

我认为通过提供从子节点到父节点的向后链接我可以提高性能。


TreeSet迭代当然是 O(n),正如任何合理的树遍历算法所期望的那样。

我想通过提供链接 从子节点向后到父节点 节点我可以提高性能。

TreeMap (which TreeSet基于)已经有这样的父引用。这就是方法:

private Entry<K,V> successor(Entry<K,V> t) {
    if (t == null)
        return null;
    else if (t.right != null) {
        Entry<K,V> p = t.right;
        while (p.left != null)
            p = p.left;
        return p;
    } else {
        Entry<K,V> p = t.parent;
        Entry<K,V> ch = t;
        while (p != null && ch == p.right) {
            ch = p;
            p = p.parent;
        }
        return p;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TreeSet迭代的时间复杂度是多少? 的相关文章

  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 有向未加权图中的最长非循环路径

    什么算法可用于找到未加权有向无环图中的最长路径 动态规划 http en wikipedia org wiki Dynamic programming 它也被引用于最长路径问题 http en wikipedia org wiki Long
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • volatile、final 和synchronized 安全发布的区别

    给定一个带有变量 x 的 A 类 变量 x 在类构造函数中设置 A x 77 我们想将 x 发布到其他线程 考虑以下 3 种变量 x 线程安全 发布的情况 1 x is final 2 x is volatile 3 x 设定为同步块 sy
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 在我的 Spring Boot 示例中无法打开版本 3 中的 Swagger UI

    我在 Spring Boot 示例中打开 swagger ui 时遇到问题 当我访问 localhost 8080 swagger ui 或 localhost 8080 root api name swagger ui 时出现这种错误 S
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 获取文件的总大小(以字节为单位)[重复]

    这个问题在这里已经有答案了 可能的重复 java 高效获取文件大小 https stackoverflow com questions 116574 java get file size efficiently 我有一个名为 filenam
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • 不接受任何内容也不返回任何内容的函数接口[重复]

    这个问题在这里已经有答案了 JDK中是否有一个标准的函数式接口 不接受也不返回任何内容 我找不到一个 像下面这样 FunctionalInterface interface Action void execute 可运行怎么样 Functi
  • 如何使用 jUnit 将测试用例添加到套件中?

    我有 2 个测试类 都扩展了TestCase 每个类都包含一堆针对我的程序运行的单独测试 如何将这两个类 以及它们拥有的所有测试 作为同一套件的一部分执行 我正在使用 jUnit 4 8 在 jUnit4 中你有这样的东西 RunWith
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 找不到符号 NOTIFICATION_SERVICE?

    package com test app import android app Notification import android app NotificationManager import android app PendingIn
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List

随机推荐

  • Google 是否推送了会破坏多个帐户的 OAuth2.0 流程更新?

    直到上周 当我登录 Google 中的多个帐户并调用 OAuth2 0 流程时 我都会看到一个功能正常的丑陋屏幕 看起来像是被丑陋的棍子反复击打 它将显示一个单选按钮列表 其中包含我登录的所有帐户 您选择一个并继续完成流程 这周我现在得到了
  • 使用 -fshort-wchar 的含义

    在 Mac OS X 系统上查看文件 wchar h 时 我发现当未定义 cplusplust 且 wchar t 的最大大小为 2 个字节 通过使用编译器选项 fshort 时 wchar t 相当于 str 函数 例如 wcscpy w
  • 无法膨胀 ConstraintLayout

    每次我的应用程序崩溃时 因为它在类路径中找不到 Landroidx constraintlayout widget R styleable 我尝试重建 使缓存无效 但它总是在运行时给我同样的错误 我尝试了 1 1 2 和 1 1 3 两个版
  • pandas 时间序列的线性回归

    我有一个数据框对象 其中包含 EUR USD 货币对的 1 秒间隔 但理论上它可以是任何间隔 在这种情况下它可能如下所示 2015 11 10 01 00 00 01 00 1 07616 2015 11 10 01 01 00 01 00
  • mat-form-field 必须包含 MatFormFieldControl

    我们正在尝试在我们公司构建我们自己的表单字段组件 我们正在尝试像这样包装材料设计的组件 field
  • 使用数组进行 DocumentDB 查询

    我有带有简单 字符串 数组属性的文档 id one tags A B id two tags A C 要检查值是否是数组的一部分 我可以使用 ARRAY CONTAINS SELECT FROM c WHERE ARRAY CONTAINS
  • 在 Rake 任务中使用环境变量

    task some task environment do t args puts Rails env gt development production etc puts ENV gt end 我设置了一些环境变量 通过本地 env 或通
  • 删除后如何访问 Kubernetes 中 Pod 的日志

    我们拥有基于 CentOS 的 kubernetes 基础设施 并在此基础上使用 Openshift 我们已经终止了一个 Pod 现在它在主控制器上不再可见 但是我们愿意分析它的日志 我们还能访问它的日志吗 如何 当您发出命令时 容器及其日
  • 使用 from_json 制作的 MongoEngine 文档对象不保存

    我正在尝试使用 from json 方法构建文档对象 object save 没有抛出错误 但文档没有插入到 mongo 中 另一方面 如果我通过为每个字段分配值来创建对象 它就可以正常工作 我无法找到原因 下面是这两种情况的代码 from
  • Scala 模块 2.12.3 需要 Jackson Databind 版本 >= 2.12.0 且 < 2.13.0,但我有 databind 2.12.3

    对于一个项目 我将 Spark 结构化流与 kafka 结合使用 我有这个配置
  • 沿线性回归线绘制条件密度曲线“P(Y|X)”

    这是我的数据框 有两列Y 回应 和X 协变量 Editor edit use dat not data dat lt structure list Y c NA 1 793 0 642 1 189 0 823 1 715 1 623 0 9
  • 简单的 Python 服务器设置

    我正在尝试学习 python 来自 PHP 并且想要设置最简单的 Web 服务器 以便我可以开始编码 我找到了集成的 HTTP 服务器 所以我认为这应该是最简单的方法 root ubuntu var py python m SimpleHT
  • 核心数据关系(快速)

    我正在构建一个需要核心数据关系的应用程序 如下所示 entityA lt lt gt entityB e g any given entityA can hold many entityB objects 我有两个带有entityA 列表项
  • 在容器中运行服务(upstart/init.d)

    我正在尝试在 docker 中启动一个具有许多 init 和 upstart 服务的系统 但出现此错误 initctl Unable to connect to Upstart Failed to connect to socket com
  • IntelliJ IDEA 没有 Java 10 'var' 的代码完成?

    最近我安装了IntelliJ IDEA的新版本 2018 1 它增加了对Java 10的支持 但是当我尝试使用var 对于局部变量类型推断 我发现没有var在代码完成列表中 见下面的截图 如果我继续输入 它将适用VarHandle作为该列表
  • 如何对变长特征进行一种热编码?

    给定一个变长特征列表 features f1 f2 f3 f2 f4 f5 f6 f1 f2 其中每个样本都有不同数量的特征和特征dtype is str并且已经一热了 为了使用 sklearn 的特征选择实用程序 我必须将features
  • 确保 gem 与 Rails 3.x 和 4.0 兼容的 gem 测试策略?

    我见过一些虚拟 Rails 应用程序的示例 用于测试 因此它们通常处于测试或规范目录下 与 Appraisals gem 一起使用 据说可以与 Rails 3 x 和 Rails 4 一起使用 但它们看起来很黑客且功能不完整 这在某种程度上
  • 如何从wordpress数据库获取产品属性

    编写自定义代码以使用 WordPress 数据库创建产品详细信息页面 我已经显示了产品标题 描述 价格 库存等 并且对产品属性感到困惑 在数据库中 product attributes以序列化方式存储在数据库的wp postmeta表中 而
  • 如何使用参数屏蔽除 Java 中最后 4 个字符之外的所有字符串字符?

    我想知道如何屏蔽除最后 4 个字符串之外的任意数量的字符串字符 我想使用 X 屏蔽所有字符串 例如 Number S1234567B Result Number XXXXX567B 感谢你们 解决方案1 您可以使用正则表达式来完成 这是sh
  • TreeSet迭代的时间复杂度是多少?

    在我的代码中 JavaTreeSet迭代是主要的时间因素 在观察这个系统时 我相信它的复杂度是 O n 任何人都可以验证这一点吗 我认为通过提供从子节点到父节点的向后链接我可以提高性能 TreeSet迭代当然是 O n 正如任何合理的树遍历