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迭代的时间复杂度是多少? 的相关文章

  • 使用 WebDriver 单击新打开的选项卡中的链接

    有人可以在这种情况下帮助我吗 场景是 有一个网页 我仅在新选项卡中打开所有指定的链接 现在我尝试单击新打开的选项卡中的任何一个链接 在下面尝试过 但它仅单击主 第一个选项卡中的一个链接 而不是在新选项卡中 new Actions drive
  • Oracle Java 教程 - 回答问题时可能出现错误

    我是 Java 新手 正在阅读 Oracle 教程 每个部分之后都有问题和答案 我不明白一个答案中的一句话 见下面的粗体线 来源是https docs oracle com javase tutorial java javaOO QandE
  • 如何在 Openfire 中使用 smack

    你好 我计划开发一个可以连接到 gtalk facebook 等的聊天客户端 我决定将 smack API 与 openfire 一起使用 但我需要很少的指导来了解如何将它与 openfire 服务器一起使用 openfire 是否提供了基
  • 埃拉托色尼筛法 - 实现返回一些非质数值?

    我用 Java 实现了埃拉托斯特尼筛法 通过伪代码 public static void sieveofEratosthenes int n boolean numArray numArray new boolean n for int i
  • Logback:SizeAndTimeBasedRollingPolicy 不遵守totalSizeCap

    我正在尝试以一种方式管理我的日志记录 一旦达到总累积大小限制或达到最大历史记录限制 我最旧的存档日志文件就会被删除 当使用SizeAndTimeBasedRollingPolicy在 Logback 1 1 7 中 滚动文件追加器将继续创建
  • FileNotFoundException - Struts2 文件上传

    Strange FileNotFoundException使用Struts2上传文件时 这是 JSP 的一部分
  • 为什么Iterator接口没有add方法

    In IteratorSun 添加了remove 方法来删 除集合中最后访问的元素 为什么没有add方法来向集合中添加新元素 它可能对集合或迭代器产生什么样的副作用 好的 我们开始吧 设计常见问题解答中明确给出了答案 为什么不提供 Iter
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • Java:从集合中获取第一项

    如果我有一个集合 例如Collection
  • 虽然我的类已加载,但 Class.forName 抛出 ClassNotFoundException

    代码如下 它的作用是加载我放在主目录中的 jar 文件中的所有类 import java io File import java util jar JarFile import java util jar JarEntry import j
  • 在 Java 中通过 XSLT 分解 XML

    我需要转换具有嵌套 分层 表单结构的大型 XML 文件
  • 用于缓存的 Servlet 过滤器

    我正在创建一个用于缓存的 servlet 过滤器 这个想法是将响应主体缓存到memcached 响应正文由以下方式生成 结果是一个字符串 response getWriter print result 我的问题是 由于响应正文将不加修改地放
  • 如何从日期中删除毫秒、秒、分钟和小时[重复]

    这个问题在这里已经有答案了 我遇到了一个问题 我想比较两个日期 然而 我只想比较年 月 日 这就是我能想到的 private Date trim Date date Calendar calendar Calendar getInstanc
  • 在 Clojure 中解压缩 zlib 流

    我有一个二进制文件 其内容由zlib compress在Python上 有没有一种简单的方法可以在Clojure中打开和解压缩它 import zlib import json with open data json zlib wb as
  • JAVA中遍历JSON数据

    我是 JSON 新手 我使用 HTTPUrlConnections 并在 JAVA 程序中获得一些响应 响应数据将类似于 data id 1 userId 1 name ABC modified 2014 12 04 created 201
  • Play.application() 的替代方案是什么

    我是 Play 框架的新手 我想读取conf文件夹中的一个文件 所以我用了Play application classloader getResources Data json nextElement getFile 但我知道 play P
  • Karaf / Maven - 无法解决:缺少需求 osgi.wiring.package

    我无法在 Karaf 版本 3 0 1 中启动捆绑包 该包是使用 Maven 构建的并导入gson http mvnrepository com artifact com google code gson gson 2 3 1 我按照要求将
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • 替换文件中的字符串

    我正在寻找一种方法来替换文件中的字符串而不将整个文件读入内存 通常我会使用 Reader 和 Writer 即如下所示 public static void replace String oldstring String newstring
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向

随机推荐

  • 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 正如任何合理的树遍历