c++ - 嵌套映射 cpp 的时间复杂度
问题描述
假设我们有map<int,map<int,int>>m
那么这个时间复杂度应该是m[x][y]
多少?
我认为应该是logn*logm
number of x
isn
和 number of y
is m
。
解决方案
我认为如果 x 的数量是 n 并且 y 的数量是 m,它应该是 logn*logm。
不,您在两个单独的地图上执行两次地图查找。你没有任何重复。一张地图在另一张地图内不会影响复杂性。
当您按顺序执行两个操作时,复杂性是各个操作的复杂性之和。因此,在这种情况下,复杂度为 O(log N + log M),其中 N 是一个映射的大小,M 是另一个映射的大小 - 可以简化为 O(log N),其中 N 是大小的大地图。
推荐阅读
- sql - SQL SERVER 2016 慢插入
- c - 不知道为什么我不能在第 112 行打印成本。它说
- python - 为什么在我告诉它 POST 之后请求使用 GET?
- kotlin - 如何使用 HttpRequest.sendStream() 获取上传文件的状态?
- javascript - 使用带有可变根元素的解析 JSON 的 JavaScript 对象
- netsuite - Netsuite 项目搜索 - 目标:显示可用数量非零的项目
- c# - 字符串根据条件拆分
- selenium - VSTS (Azure DevOps) 中的 Selenium 屏幕截图
- r - 将散点与跨越小提琴图填充条件的线配对
- hibernate - 何时/如何以编程方式设置 Hibernate 使用的 Ehcache 大小