【发布时间】:2017-11-15 15:33:06
【问题描述】:
对于像这样的嵌套地图:
Map<String, Map<String, List<String>>> map = new HashMap<String, HashMap<String, ArrayList<String>>>();
对于 put、remove、containsKey 等正常操作的时间复杂度是多少?
谢谢!
【问题讨论】:
标签: java big-o computer-science
对于像这样的嵌套地图:
Map<String, Map<String, List<String>>> map = new HashMap<String, HashMap<String, ArrayList<String>>>();
对于 put、remove、containsKey 等正常操作的时间复杂度是多少?
谢谢!
【问题讨论】:
标签: java big-o computer-science
时间复杂度将与非嵌套HashMaps 的时间复杂度相同。
每次查找仍然需要平均恒定时间。
要在嵌套的Map 中搜索内部值,您需要执行两次查找 - 第一次在外部 Map 中查找,如果在外部 Map 中找到值,则在内部进行第二次查找Map。由于两次查找都需要固定时间,因此总查找时间保持不变。
put、remove 等也是如此......
【讨论】:
n 是什么。迭代所有内部映射的所有列表值中的所有字符串的复杂性是外部映射的大小、内部映射的最大大小和列表的最大大小的乘积。如果这些大小中的任何一个都可以由一个常数限制,那么总复杂度将小于 n^3。