我用的是邻接矩阵,优先队列是数据结构。根据我的计算,复杂度是V^3logV:While循环:V检查相邻顶点:V如果条目已经存在则检查队列,并更新相同的条目:Vlogv但是,我到处都读到复杂度是V^2请解释。 最佳答案 如果你使用斐波那契堆,那么提取最小值是O(lgV)摊余成本并更新其中的条目是O(1)摊销。如果我们使用这个伪代码whilepriorityQueuenotemptyu=priorityQueue.exractMin()foreachvinu.adjacenciesifpriorityQueue.contains(v)a
(我使用的是EclipseLuna4.4.0,JDK1.8.0_05)我在做一个游戏,游戏世界的拓扑结构大致可以分解为World->Level->Tile,其中Tile是地形的一个小单元。我设置了三个项目,一个包含这些结构的一些基类,另外两个是服务器和客户端,它们扩展基础项目中的结构以获得每个项目需要的额外内容。像这样:基础项目:publicclassBaseWorld{/*...code...*/}publicclassBaseLevel{/*...code...*/}publicclassBaseTile{/*...code...*/}在服务器和客户端项目中:publicclass
我有一个hashmap,它有字符串和对象的键值对。它是类似于下面的json的转换。{"test1":{"test2":{"test3":{"key":"value"},"somefields12":"somevalue2"},"somefields":"somevalue"}}但是,我不会转换为map。我只有那张map。如果这可能有key和value,我必须根据该值编写一些逻辑。我实现如下:if(map.containsKey("test1")){finalHashMaptest1=(HashMap)map.get("test1");if(test1.containsKey("test
我正在寻找一个完整的java开发基础设施,它集成了:像eclipse这样的IDE,像Maven这样的构建系统,像subversion这样的版本控制系统,持续集成服务器,如Hudson,像Nexus这样的存储库管理器,一个像MavenReleasePlugin这样的自动发布插件.我还想有:预定义的多组件项目结构...以及可选的:像Jira这样的问题经理,与开源主机集成,如sourceforge.评估所有这些系统可能需要很长时间,使运行中的基础设施的设置成为一个月或更长时间的工作。在工作中,我已准备好单独设置每个系统,但对于我在家的私有(private)开发,我想要类似Devware-Ad
在我的代码中,JavaTreeSet迭代是主要的时间因素。在查看系统时,我认为它是O(n)的复杂性。谁能验证一下?我在想,通过提供从子节点到父节点的反向链接,我可以提高性能。 最佳答案 TreeSet迭代当然是O(n),正如任何明智的树行走算法所期望的那样。IamthinkingthatbyprovidinglinksbackwardfromchildnodetoparentnodeIcouldimprovetheperformance.TreeMap(TreeSet所基于的)已经有这样的父引用。这是所有归结为的方法:private
作为一项学校作业,我需要实现我打算用Java实现的朴素贝叶斯算法。为了了解它是如何完成的,我阅读了“数据挖掘-实用机器学习工具和技术”一书,其中有一节是关于这个主题的,但我仍然不确定一些阻碍我进步的主要观点。由于我在这里寻求指导而不是解决方案,我会告诉你们我的想法,我认为正确的方法,并要求更正/指导作为返回,我们将不胜感激。请注意,我是朴素贝叶斯算法、数据挖掘和一般编程方面的绝对初学者,因此您可能会在下面看到愚蠢的评论/计算:我得到的训练数据集有4个属性/特征,它们是数字的并且使用Weka(在范围[01]内)标准化(没有缺失值)和一个标称类(是/否)1)来自csv文件的数据是数字HEN
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我正在研究(作为类(class)要求的一部分)Java7中新的Fork-Join框架,并分析与传统线程机制相比的性能改进。什么样的分而治之算法可以保证在新的forkjoin框架下运行得更快。您能否建议我可以用来分析性能差异的任何非平凡算法。
我编写了一个java程序来执行CURE聚类。我希望将这个程序作为聚类算法添加到weka中并可视化聚类。有没有人已经在weka上实现了它?任何指向它的链接都会非常有帮助。我该如何处理? 最佳答案 Weka在聚类方面非常薄弱。实际上,Weka中的集群几乎不存在。例如的实现OPTICS本质上是只是调用但根本没有集成的外部程序。你可能想看看ELKI,http://elki.dbs.ifi.lmu.de/这就像用于聚类和离群值检测的Weka(虽然它没有分类——这是Weka的强项)。不过,它也还没有CURE。但是还有许多其他聚类器和可视化。
是否有任何适用于Java的工具可以自动确定给定Java代码的圈复杂度?我在网上寻找工具,但还没有找到。 最佳答案 我使用Sonar(我的首选方法)。有一些插件可以在构建时“自动”生成报告(即ANT/Maven等)。关于如何在仪表板上显示CC的另一篇相关文章:howtolistmethodswithmostcyclomaticcomplexity我过去使用的另一个工具是corbetura。不过,您必须进行良好的单元测试,找到CC的定量分析有点棘手。 关于java-在java中自动计算圈复杂
我正在尝试创建一种递归方法,该方法使用Horner算法将以n为底的小数转换为以10为底的小数。我在这里和所有地方都进行了搜索,但找不到任何地方详细处理小数部分。提醒一下,我在递归方面很弱,因为我还没有在我的编程课上正式学习它,但已经被另一个类(class)分配了。我能够创建一个方法来处理数字的整数部分,而不是小数部分。我觉得我写的方法相当接近,因为它让我的测试数字的答案加倍(可能是因为我正在测试基数2)。传递的第一个参数是一个填充有系数的int数组。我不太关心系数的顺序,因为我正在使所有系数相同以对其进行测试。第二个参数是基础。第三个参数初始化为系数数减1,我也将其用于整数部分方法。我