问题标签 [code-complexity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
437 浏览

java - 哪个是java中用于更新列表中对象(如果存在)的最快和最有效的实现,否则添加它

我有一个有效的问题陈述,但我仍然想知道更有效、更快、更重要的是正确设计来处理下面提到的场景。

我有一个 POJO 类

我正在尝试填充一个列表,基本上是一个对象 A 的列表到列表中。现在有问题的实施。在将对象 A 添加到列表中时,我需要检查是否已经存在带有 String 的对象。如果是,我想用旧的 d1 + 新的 d1 更新旧的对象,并且不将新对象添加到列表中,如果没有,则将新对象添加到列表中。我目前的实现如下所示。

有没有更有效的方法在第二个 for 循环中进行处理?

0 投票
1 回答
244 浏览

c - Thrust - 如何使用我的数组/数据 - 模型

我是推力(cuda)的新手,我想做一些数组操作,但我在互联网上找不到任何类似的例子。

我有以下两个数组(2d):

我希望推力计算这个数组:

我知道它在 c/c++ 中是如何工作的,但不知道如何说要做它。

这是我的想法,它可能如何工作:

线程 1:取 a[0] -> 用 b 扩展它。将其写入 c。

线程 2:取 a[1] -> 用 b 扩展它。将其写入 c。

但我不知道该怎么做。我可以将数组 a 和 b 写入一维数组,例如:

和伪函数:

有人知道吗?

0 投票
1 回答
237 浏览

c++ - Win32 C++ 应用程序中的 McCabe 复杂性

读过这个问题:

用于 Java 中 switch 的 McCabe 循环复杂度

我的兴趣转向了无法以这种方式解决的 switch 语句(?)。

意识到 McCabe 的决策应该少于 20 以保证更好的可维护性,我开始怀疑 Win32 应用程序。

在制作 Win32 应用程序时,可以制作按钮。现在对于这些按钮,在它们上放置一个处理程序是非常典型的,并且在它们被按下时处理它们发送的消息通常在 Win32 回调函数中完成。

现在随着应用程序变得越来越大,这个 switch 语句变得越来越大(超过 20 个)。这是否意味着 Win32 应用程序的可维护性比其他应用程序(Java Swing?)更差?

或者这是 McCabe 复杂性的一个例外,如果是这样,那么这实际上以何种方式与其他应用程序类型的可维护性相提并论?

0 投票
2 回答
536 浏览

c# - 检查多个文本框中的至少一个是否有内容的最佳方法?

我有一个“搜索页面”,要求至少一个文本框有一些输入。以下方法可以这样验证:

这种方法的结果没有任何问题。我的问题与性能有关:是否有更好的方法来进行此检查?我想到的一种可能的选择:

我认为当第一个字段不为空时使用 if-return 模式会更好,但对于其他用例,使用String.Concat更好。

有人可以让我知道哪种方式更好,为什么?还有其他更好的方法吗?

0 投票
1 回答
146 浏览

java - java框架复杂度统计

很难说明框架的复杂性(hibernate、spring、apache-commons、...)

我唯一能想到的就是比较jar 库的文件大小,甚至更好的是,比较jar 文件中包含的类的数量

当然,这不是复杂性的数学合理证明。但至少应该明确一些框架与其他框架相比是轻量级的。

当然,计算统计数据需要一些时间。为了节省时间,我想知道是否有人已经这样做了?

编辑:

是的,有很多工具可以计算单个方法和类的复杂度。但是这个问题是关于第三方 jar 文件的。

另请注意,我最初的问题中有 40% 的短语强调这样一个事实,即每个人都清楚复杂性难以衡量的事实,并且文件大小和类的 nr 可能确实不够。因此,没有必要进一步详细说明这一点。

0 投票
1 回答
185 浏览

design-patterns - 模式如何帮助松散耦合?

我是 Java 模式的新手,我正试图弄清楚它如何适应现实世界。大多数关于模式的网站和书籍似乎都是由非程序员编写的。

我正在尝试定义模式如何帮助耦合,这是我迄今为止的定义。我想知道的是哪些模式对松散耦合真正有用,它们是否值得努力。另外,到目前为止我的定义/理解是否正确:

“耦合是程度,两个或多个不同的对象,相互访问和/或交互。”

两个对象之间的紧密耦合:

  • 引用/实例化:在许多地方,在一个或两个对象(多对多引用)中对另一个对象的许多尊重

  • 复杂性:通常很多参数需要访问函数,或者访问不同函数的顺序。相关对象没有通用接口。

  • 责任:做应该在被访问的对象或另一个对象中完成的工作。直接访问嵌套函数。

  • 性能:有时需要紧密耦合的最大原因,但应尽量减少。

两个对象之间的松散耦合:

  • 引用/实例化:很少,但在一个对象中至少有一个引用,但不是在两个(一对少数引用)
    中有帮助的模式:工厂、单例、生成器、复合

  • 复杂性:很少,定义明确的参数(通常由接口定义),具有最少可能的功能序列(exp. open, fetch, close)
    有帮助的模式:适配器,桥接器,装饰器,外观,命令 

  • 责任:只做对象负责做的工作,并尝试只访问下一层的功能。
    有帮助的模式:装饰器、责任链、MVC

  • 性能:确定性能需要在哪里,并将这些类放在一起——甚至可以作为嵌套类,根据定义紧密耦合。

0 投票
2 回答
1703 浏览

algorithm - 3 数组情况下的代码复杂度

你得到三个排序的数组(按升序排列),你需要找到一个三元组(每个数组中的一个元素),使得距离最小。距离定义如下:如果a[i], b[j]c[k]是三个元素,那么

请给出 O(n) 时间复杂度的解决方案

0 投票
1 回答
656 浏览

sonarqube - “复杂性”是什么意思 - 我如何计算它?

正如标题所说:我不知道“复杂”的含义

当我访问声纳结果的网页时,我非常想知道如何计算它。

0 投票
2 回答
76 浏览

java - 时间复杂度 - 递归调用

我试图了解如何计算算法的时间复杂度。

我有这段代码:这是整个方法:

我认为复杂度是 O(n)。我对吗?

谢谢

0 投票
3 回答
461 浏览

python - 算法的时间复杂度

这是我按升序对列表进行排序的代码。我在函数中使用了函数。现在我想计算这个函数的时间复杂度。从我的角度来看,我计算出每次函数“sort”完成其循环时都会调用函数“unite”。所以这个函数每次都要用到两个函数。所以我得出结论,这个函数的复杂度是 O(nlog(n))。我是本章的新手。所以我想知道如何计算这种复杂度。上面的答案只是我的近似值。我既不知道真正的答案,也没有任何解决方案或提示。因此,请在您给予时描述您的答案。谢谢。这是我的代码。