TreeMap<> 操作的时间复杂度:get() 和 subMap()

2024-01-31

基于这篇文章,TreeMap 操作的时间复杂度 - subMap、headMap、tailMap https://stackoverflow.com/questions/14290751/time-complexity-of-treemap-operations-submap-headmap-tailmap

subMap() 本身是 O(1),O(n) 来自迭代子映射。

那么,为什么要使用 get(key) 呢?

我们可以使用 subMap(key, true, key, true) 代替,

这是 O(1),迭代这个子映射也是 O(1)。

比 get(key) 更快,时间复杂度为 O(log(n))。这里出了点问题...


我们可以使用 subMap(key, true, key, true) 来代替,时间复杂度为 O(1)

这是对的

迭代这个子图也是 O(1)。

O(n) 来自问题。答案并没有暗示这一点,这很好,因为这不是真的。

迭代子树的时间复杂度为 O(log n + k),其中n是整个地图中的元素数量,并且k是子图中的元素数量。换句话说,当你开始迭代时,仍然需要 O(log n) 才能到达第一个位置。抬头getFirstEntry()实施看看它是如何完成的。

这使得你的方法的整体复杂度达到 O(log n),但它肯定会比简单的方法慢get,因为在此过程中创建并丢弃了一个中间对象。

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

TreeMap<> 操作的时间复杂度:get() 和 subMap() 的相关文章

  • 将元素添加到数组java中

    布局是这样的 index num 0 10 1 20 2 30 Add 35 here 3 40 Move elements down 4 50 5 60 6 70 那么我的方法是这样的 public static void method
  • (更好的方法)使用 Eclipse 和 XText 获取项目中的文件

    我正在编写一个 XText 编辑器 并进行一些语义突出显示 我正在解析的部分语言引用了文件 这些文件应该存在于项目中 我想根据这些文件是否位于正确的位置来突出显示 目前 我有一个非常丑陋的解决方案 但我确信有更好的方法 public voi
  • Mediaplayer 播放几次后停止播放

    我有一个按钮 按下它会播放一个随机声音剪辑 然后播放另一个声音剪辑 然后通过一个媒体播放器播放另一个声音剪辑 但是多次按下该按钮 15 20 次 后 所有音频都会停止 我在播放最后一个音频剪辑后释放媒体播放器 所以我不认为这是原因 有什么指
  • java中%%是什么意思?

    我是一名 PHP 程序员 想知道这行代码的含义 System out printf exp 3f is 3f n x Math exp x 3f 3f n 和逗号 x 是什么意思 它与C类似printf http java sun com
  • Java:等于和==

    让我们看看我们有 2 个对用户定义类实例的引用 即 Java 中的 a 和 b 会不会有一种情况 a b 但 a equals b 返回 false 当然 实施 equals 完全取决于班级 所以我可以写 class Foo public
  • Java:将二维字符串数组打印为右对齐表格

    是什么best打印a的单元格的方法String 数组作为右对齐表 例如 输入 x xxx yyy y zz zz 应该产生输出 x xxx yyy y zz zz 这似乎是一个should能够完成使用java util Formatter
  • Android Studio:如果设置项目的背景颜色,ListView OnClick 动画将不起作用

    在我的项目中 我在 ListView 内设置了项目 由插入 ConstraintLayout 中的多个元素组成 的背景颜色 但如果背景颜色不是至少一点透明 则单击和长按的默认动画会消失 事实上 随着透明度的降低 点击元素的效果越来越不明显
  • 使用 Microsoft REST API - Java 将 Xbox-Live GamerTag 转换为 XUID

    我有一个 Java 应用程序 它需要能够获取用户输入的 Minecraft Bedrock Edition 玩家标签 并将其转换为给定帐户的 XUID 以便我可以将其存储起来以供稍后列入白名单和参考目的 我一直在浏览 Microsoft R
  • Mockito mockStatic 无法解析符号

    我正在使用 Spring Boot 并在单元测试中 我试图模拟Files delete myFile toPath method 为此 我尝试使用Mockito mockStatic 方法 但是当我尝试使用它时 我的 IDE Intelli
  • 加密 mongodb 中的密码字段

    我有以下代码 它插入userName and password进入数据库 但密码以纯文本格式存储 我的意思是 当我查看数据库时 我可以看到插入的密码 我想存储password in encrypted format MongoClient
  • 对象映射器 - YAMLFactory - 由于缺少 _createContentReference 方法而出现异常

    我正在使用最新的 2 13 0 版本的 jackson 当我尝试解析 YAML 文件时 出现此异常 java lang NoSuchMethodError com fasterxml jackson core io ContentRefer
  • 如何在 PuTTY 中保存并运行 Java 文件?

    我是 AWS 亚马逊网络服务 的新手 所以这可能是一个基本问题 我在 AWS 上创建了一个 EC2 实例 我有一台 Windows 计算机 因此我使用 PUTTY 来连接 Linux 实例 连接到我的 EC2 实例后 我使用以下命令编写 J
  • Netty Nio java 中的通信

    我想在 Netty nio 中创建一个具有两个客户端和一个服务器的通信系统 更具体地说 首先 我希望当两个客户端与服务器连接时从服务器发送消息 然后能够在两个客户端之间交换数据 我正在使用本示例提供的代码 https github com
  • 在 Python 中进行模糊键查找的最佳方法?

    我遇到一个问题 我需要在哈希映射中进行模糊查找 即返回与最接近查询的键相对应的值 在我的例子中是通过 Levenshtein 距离测量的 我目前的方法是子类化dict使用特殊的查找方法计算所有键的编辑距离 然后返回得分最低的键的值 基本上是
  • 为什么 CompletableFuture 的 thenAccept() 不在主线程上运行

    我在 CompletableFuture 的 SupplyAsync 中处理长时间运行的操作 并将结果放入 thenAccept 中 有时 thenAccept 在主线程上执行 但有时它在工作线程上运行 但我只想在主线程上运行 thenAc
  • Zookeeper 未启动,nohup 错误

    我已经下载了zookeeper 3 4 5 tar gz 解压后我将conf zoo cfg写为 tickTime 2000 dataDir var zookeeper clientPort 2181 现在我尝试通过 bin zkServe
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez
  • com.fasterxml.jackson.databind.JsonMappingException:无法反序列化 org.springframework.data.domain.Sort 的实例 START_ARRAY 令牌

    我的 objectMapper 正在获取类型的值Page
  • 如何在 tomcat 上部署 Java Web 应用程序 (.war)?

    我有一个 warJava Web 应用程序的文件 现在我想将它上传到我的 ftp 服务器 以便我可以执行它 我应该执行哪些步骤来运行它 webapp的上下文路径是 mywebapp Edit 实际上 我的 ftp 服务器名称是ftp bil
  • 为什么我们不能在函数式接口中重载抽象方法? (爪哇)

    所以我熟悉java中的函数式接口 以及它们与lambda表达式的使用 一个函数式接口只能包含一个抽象方法 当从 lambda 表达式使用这一孤独方法时 您不需要指定其名称 因为接口中只有一个抽象方法 编译器知道这就是您正在引用的方法 Exa

随机推荐

  • matplotlib:图例标题的对齐

    在matplotlib中 如何调整图例标题 它始终居中 但我需要它与图例框左对齐 我尝试更改标题的文本艺术家的对齐方式 但没有效果 详细信息请参见以下示例 from pylab import x linspace 0 1 plot x x
  • Flutter:如何检查字符串中的字母是否相同[重复]

    这个问题在这里已经有答案了 我正在制作一个表单 供用户通过输入卖家的帐户名称和帐户类型来添加新卖家 但在将新卖家添加到firestore之前 它会检查该卖家是否存在 现在我的代码仅检查输入的名称是否与数据库中的名称非常相似 例如 数据库中有
  • Javafx Tile Pane,设置最大列数

    首先 我将解释我的目标 我想渲染一个像这样的表格 每个单元格的内容在执行时间中确定 但其大小固定为 13x13 因此 我的方法是创建一个平铺窗格 将列数设置为 13 并创建单元格 pane new TilePane pane setPadd
  • 读取多个.gz文件并识别哪一行属于哪个文件

    我正在读取多个 gz 文件以使用谷歌数据流进行处理 数据的最终目的地是BigQuery BigQuery 表对于 gz 文件内的 csv 文件中的每一列都有专用列 BQ 表中还有一个附加列 file name 它给出了该记录所属的文件名 我
  • 使用编程导航传递 props Vue.js

    我有一个 Vue 组件 有一个名为 title 的 prop 例如 完成某个操作后 我以编程方式导航到该组件 有没有办法以编程方式路由用户 同时设置 prop 值 我知道您可以创建这样的链接
  • 当 E_NOTICE 打开时,如何设置 PHP 不检查 $_GET 的未定义索引?

    当 E NOTICE 设置为 on 时 PHP 将报告数组的未定义索引 我想抑制这个错误 GET仅有的 除了预先添加每个之外 还有什么方法可以做到这一点 GET with 正确的解决方案是使用 isset 或数组键存在 https www
  • 为 Pycharm 中构建的项目运行 pyinstaller 时如何包含 venv 目录中的依赖项?

    我是 Python 和 PyCharm 新手 我在 OSX High Sierra 上运行 我在 PyCharm 中创建了一个使用 lxml 的项目 我已经安装了 lxml 4 1 1 作为项目依赖项 我可以在 myProject venv
  • 不使用其他特征文件调用的条件

    使用空手道 我想知道是否可以设置 If 条件而无需调用不同的功能文件 并且不使用 JavaScript gt 在条件中使用空手道功能文件代码块 例如应该可以做类似的事情吗 if variable 1 delay 3000 retry cli
  • Spring Data JPA 存储库中的解析和查询构建是哪个类?

    我已经在 spring 文档中阅读了这一行 Spring 数据存储库基础设施中内置的查询构建器机制 任何人都可以告诉这个查询构建器在 spring 中到底是哪个类吗 你应该看看org springframework data jpa rep
  • 嵌套对象最佳实践

    引用嵌套对象的最佳实践是什么 假设我有以下内容 class Outer private InnerA innerA getters and setters class InnerA private InnerB innerB getters
  • 我可以告诉 C# 可空引用一个方法实际上是对字段的空检查吗

    考虑以下代码 nullable enable class Foo public string Name get set public bool HasName gt Name null public void NameToUpperCase
  • 生成大型 pdf 文件,但主内存中没有内容

    我正在使用 iText 生成 pdf 格式的非常大的表格 生成这些表而不是将整个内容存储在内存中的最佳方法是什么 如果我只是将 for 循环中的以下大小增加到一百万 我就会耗尽内存 是否有比将整个内容都存储在内存中更好的方法来流式传输它 我
  • “类”在其自己的类型注释中直接或间接引用

    这是基本的 DI 模式 class Foo foo 1 class Bar constructor public Foo typeof Foo const foo new Foo class Baz extends Foo new Bar
  • 获取 Git 中远程分支的总数

    如何获取 Git 中远程分支的总数 为了获取所有远程分支 我在下面执行此语句 但我无法获取这些分支的计数 总数 我试过 count 但它不起作用 git branch r 我怎样才能得到这些的数量 就像是 git branch r wc l
  • Number.prototype.toLocaleString() 和 Intl.NumberFormat.prototype.format 之间有什么关系?

    我们正在尝试在我们的应用程序中使用本地化支持并查看toLocaleString 我们还看了Intl NumberFormat及其格式化方法 他们有什么关系吗 使用哪一个更好 来自 MDN 文档Number prototype toLocal
  • 删除行中重复的字符串

    出现以下问题 我有数据框 data1 其中包含多个条目的变量 data1 lt data frame v1 c test test bird bird bird car 现在我想删除每行中的重复条目 结果应该是这样的 data1 final
  • 在 Jquery 日期选择器中禁用 Next

    有没有其他方法可以让用户选择下个月 我已经完成了一些线程 但我不想通过使用本中指示的步骤功能来禁用下一个和上一个按钮link https stackoverflow com questions 3501808 jquery datepick
  • 如何通过 xcode 4.2 故事板正确使用模态视图控制器

    我想知道如何正确使用故事板以模态方式放置视图控制器 就我个人而言 我更喜欢与 xibs 合作 但故事板似乎越来越受欢迎 并且将成为未来的发展方向 我通常以模态方式放置视图控制器的方式是这样的 假设我们有 ViewControllerA 简称
  • Laravel 自定义身份验证过滤器

    我已在控制器中使用 Route Intended 将标准身份验证过滤器添加到多个路由 假设登录成功 过滤器 php Route filter auth function if Auth guest return Redirect guest
  • TreeMap<> 操作的时间复杂度:get() 和 subMap()

    基于这篇文章 TreeMap 操作的时间复杂度 subMap headMap tailMap https stackoverflow com questions 14290751 time complexity of treemap ope