由于我正在研究时间复杂性,我一直在搜索oracle Java类库,以了解列表,地图和类中使用的一些标准方法的时间复杂性.(更具体地说,ArrayList,HashSet和HashMap)
现在,在查看HashMap javadoc页面时,他们只是真正谈论get()和put()方法.
我仍然需要知道的方法是:
remove(Object o)
size()
values()
Run Code Online (Sandbox Code Playgroud)
我认为这remove()将是相同的复杂性get(),O(1)假设我们没有以相同散列码,等等等等,一个巨大的HashMap ...
因为size()我也假设O(1),因为HashSet也没有顺序,所以有一个size()复杂的方法O(1).
我不知道的是values()- 我不确定这个方法是否会以某种方式"复制"HashMap,给出时间复杂度O(1),或者是否必须迭代HashMap,使复杂性等于数量存储在HashMap中的元素.
谢谢.
我正在尝试绘制点的集合以及几何形状,这很好.但是,我想要更大的点数.显然,标准八度音阶点('.')无法调整大小.
我想过使用圆圈标记,可以调整大小,但我似乎无法"填充"它们.
我的代码: plot(A(:,1),A(:,2),"1o","markersize",5,"markerfacecolor","auto",hull(:,1),hull(:,2),"b",roster(:,1),roster(:,2),".0");
另外,有没有办法让网格点出现而不必处理网格线,或者不必生成矩阵并绘制它?
因此,我在Java中有一个递归方法来获取'n'的斐波纳契数 - 我唯一的问题是:时间复杂度是多少?我认为这是O(2 ^ n),但我可能会弄错?(我知道迭代更好,但这是一个练习)
public int fibonacciRecursive(int n)
{
if(n == 1 || n == 2) return 1;
else return fibonacciRecursive(n-2) + fibonacciRecursive(n-1);
}
Run Code Online (Sandbox Code Playgroud)