草庐IT

复杂度

全部标签

java - 遍历数组列表的时间复杂度

我有一个循环访问的数组列表。在每次迭代中,我调用get()来获取一个元素,如果该项目满足某个条件,则使用add()将其添加到新的数组列表中>Listitems=newArrayList();ListlessItems=newArrayList();for(intindex=0;index我不确定这里的时间复杂度是多少。我在所有项目上调用get(),所以这是O(n)。然后我还可能对所有项目调用add(),所以还有另一个O(n)。不太确定这一点。 最佳答案 迭代items列表的第一个循环:复杂度为O(n)将每个项目插入到列表的末尾les

java - Java PriorityQueue(堆)插入n个元素的时间复杂度?

这个问题在这里已经有了答案:HowcanbuildingaheapbeO(n)timecomplexity?(18个答案)关闭5年前。我想知道JavaPriorityQueue.Add()对n元素的时间复杂度是多少。我知道插入单个元素的潜在更坏情况是O(log(n)),但我不清楚插入n集合的时间复杂度是多少元素?我从各种来源(没有证据)中看到,构建一个n元素的优先级队列堆的时间是O(n),并且还看到声称它是O(nlog(n)),这是有意义的,因为插入是O(log(n)),它乘以n时间确实等于O(nlog(n))注意:我只对最坏的情况感兴趣,而不是摊销。这个问题假设有一种逻辑方法来描述用

java - 如何使用 Web 服务传递对象等复杂类型?

这听起来像是一个简单的问题,但作为Webservies的新手,这是我第一次使用它,所以我提出了我的疑问。问:如何使用Web服务传递对象或复杂类型?我创建了一个简单的web服务并传递了字符串和整数类型,但我不确定如何使用web服务传递对象,因此非常感谢任何指导。谢谢。 最佳答案 您只需在服务端序列化对象(制作文本)并在接收端反序列化(再次制作对象)。多年来,SOAP一直是这方面的标准,但如今JSON变得更受欢迎,因为它的开销比SOAP少得多。如果使用SOAP和Java,您可以尝试使用Google提供的GSON,它提供了一个非常易于使用

java - 如何创建复杂的按钮形状?

我有一个框架,上面覆盖着一个图像,我希望每次有人点击图像中的不同对象时,它都会充当一个按钮并执行某些操作。问题是,那些对象不是简单的形状,所以我在考虑按照这些对象的形状绘制自己的隐形按钮。这可能吗?或者什么是更好的方法来完成这样的事情?-谢谢 最佳答案 概念:带有圆形和多边形调度区域的隐形按钮首先,您需要一个定义不可见按钮的类,扩展javax.swing.AbstractButton,这样它仍然是一个功能齐全的按钮,您可以向其添加监听器。publicabstractclassInvisibleButtonextendsAbstrac

java - 数组的空间复杂度?

我有一个大小为N的数组,N是这里的空间复杂度是多少。O(1)或(N)-考虑约束N。 最佳答案 仅当您尝试预测各种输入的算法性能时,复杂性才有意义。我认为在没有任何上下文的情况下只谈论数组的空间复杂性没有任何意义。如果您总是创建一个大小为N(硬编码)的数组,则它是O(1),因为无论您的算法处理什么输入,您的数组占用的空间都是一样。如果您的N随着输入的大小而增长,则为O(f(n)),其中f(n)是n(输入的大小)和N(输入的大小)之间的关系数组)。注意:公式O(...)是一个表示幅度的数学符号,与乘数无关(抱歉不够精确,我已经完成了数学

java - 创建具有复杂类型的 Web 服务

我是Web服务的新手,我使用一种公开的方法在Eclipse中创建了一个基本项目。我能够部署我的网络服务并且工作正常。代码如下。importjavax.jws.WebMethod;importjavax.jws.WebParam;importjavax.jws.WebService;@WebService(targetNamespace="http://test.com",name="testService")publicclassWebService{@WebMethod(operationName="start")publicStringstart(@WebParam(name="i

java - Java中数组寻址的时间复杂度差异

所以我在编码涉及时间复杂度的图像处理功能时有一个随机问题。以下是我的原始代码片段:longstart=System.currentTimeMillis();for(inti=0;i在得出该代码之后,我想知道不为下限值和上限值创建4个临时变量而是直接在数组索引中计算它们是否会更快。所以我这样修改:longstart=System.currentTimeMillis();for(inti=0;i我原以为后者会更快(因为您不必写入一个临时变量然后访问它)但事实证明后者至少比前者慢2.5倍。使用的测试用例是1024x768img的3倍缩放。原代码:使用时间:812后来的代码:使用时间:2140

java - instanceof运算符java的复杂性

我想知道在Java中使用instanceof运算符的计算成本有多高,并且想知道是否有更好的替代方案可用 最佳答案 另一种方法是避免使用instanceof并正确设计您的类(在OO意义上)。因为instanceof运算符有一个相应的“instanceof”字节码指令,所以可能不会有更高性能的方法;但这也可能取决于实际JVM的优化方式。 关于java-instanceof运算符java的复杂性,我们在StackOverflow上找到一个类似的问题: https:/

java - 如何在java中合并两个复杂的对象

我有两个java对象,我想将它们合并为一个对象。问题是这两个对象不包含普通原始类型属性(字段),它们包含复杂类型属性(如其他类型的对象和其他类型的对象列表)。对象一:通过设置一些属性(字段)和返回对象2:通过设置一些属性(字段)返回,或者它可能返回它持有但对象1未返回的类型的新对象。对象1和对象2的类型相同。结果对象3=obj1属性+如果与obj1类型相同则更新obj2的属性+来自obj2的新更新对象 最佳答案 使用spring提供的org.springframework.beans.BeanUtils类很容易做到。或者Apache

java - 数组访问复杂度

在Java中假设我需要在代码中多次访问array1[index]。即使对于非常大的数组,我是否可以假设每个单独的数组访问都需要常数时间?这在语言或底层架构之间会有所不同吗? 最佳答案 Forlargevaluesofarray1sizeNcanIassumeeachsinglearrayaccess(array1[index])takesconstanttime?在Java中,是的。同样在C、C++和C#中,排除可能超出范围的操作系统级内存分页问题。Doesthisaccesstimedependonlanguage(javavsC