我有一些Java代码,我希望以此来衡量经验计算的复杂性。有一个趋势分析工具,将已编译的C/C++
程序作为输入。
是否有与趋势教授相似的工具作为已编译Java程序的输入?
声纳通常使用:http://www.sonarsource.org/
问候。
我正在尝试分析一个算法的时间复杂度。 下面的算法旨在只检查数组的一部分,所以如果它没有多大意义,请不要担心。 我对计算循环周围的时间复杂度很困惑,请看看我的评论。 这是否意味着我们有: T(N) = (C2 C4 C5)N (C1 C3 C6) T(N) = C7*N (C8) T(N)=N?? 循环中的所有内容都是*N? 先谢谢!
问题内容: 我正在阅读《 Java的艺术与科学》这本书,它展示了如何计算a年。该书使用了ACM Java Task Force的库。 这是这些书使用的代码: 现在,这就是我计算calculated年的方式。 我的代码有什么问题吗?还是我应该使用本书提供的代码? 编辑::上面的两个代码都工作正常,我想问的是,哪种代码是计算the年的最佳方法。 问题答案: 正确的实现是: 但是,如果您要重新发明轮子,
问题内容: 我正在尝试清除一些有关TreeSet操作中的复杂性的内容。在javadoc上说: “此实现为基本操作(添加,删除和包含)提供了保证的log(n)时间成本。” 到目前为止,一切都很好。我的问题是addAll(),removeAll()等会发生什么。Set的javadoc在这里说: “如果指定的集合也是一个集合,则addAll操作会有效地修改此集合,以使其值为两个集合的并集。” 它只是在解
问题内容: 虽然圈复杂度是一个值得衡量的指标,但我倾向于发现它并不是识别难以维护的代码的有效工具。特别是,我倾向于发现它只是突出显示了某些类型的代码(例如解析器),并且错过了困难的递归,线程和耦合问题以及许多已定义的反模式。 还有哪些其他工具可用来识别有问题的Java代码? 注意,我们已经使用了PMD和FindBugs,我认为它们对于方法级问题的识别非常有用。 问题答案: 我的经验是,查看代码可维
我被赋予以下任务: 给出了-2个列表。第一个列表的大小为N1,第二个列表的尺寸为N2。每个列表的元素不相同。编写一段代码,用第一个和第二个列表中的元素创建一个新列表。此列表也不应有相同的元素。还要估计代码的复杂性。 我编写了以下代码: 并假设 getNewList 方法的执行时间与 N1*N2 成正比。在回复中,我收到以下内容,没有任何解释 - “你错了,这段代码的复杂性不是 N1*N2”。 那么
将非常大的n位数字转换为十进制表示的复杂性是什么? 我的想法是,重复整数除法的基本算法,取余数得到每个数字,将具有复杂性,其中是乘法算法的复杂性;然而,除法不是2个n位数字之间的除法,而是1个n位数字和一个小常量之间的除法,因此在我看来,复杂度可能更小。