问题标签 [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.
node.js - 导出模块时减少函数长度
我正在为模块导出一个函数,以便我可以将变量传递到模块中。但是,我们的代码分析器报告该函数太长。
通常我这样做是为了将我的快速应用程序和一些配置传递到一个文件中,该文件将定义一些路由。我通常对每种资源都有不同的路由文件,以便进行一些分离:
在 authors.js 内部:
这很好用,但我最终得到了一个很长的函数。没什么大不了的,因为该功能由每条路线的许多相同功能组成。但是静态代码分析抱怨函数长度。
当然,也许这应该被忽略。但我也想确保这不是让代码变得更好的好机会,因为也许(只是也许)代码分析器是正确的。
有没有更好的方法来导出模块中的函数并避免真正长的函数?通过“更好”,我正在寻找可能是我不遵循的标准或约定的东西,如果我已经遵循 nodejs/express 约定,我不想更改代码。
algorithm - 大 O(n logn) 不如 O(n^2)
任何算法示例何时我们更喜欢大 O(n^2) 时间复杂度而不是 O(n logn)?我在某处看到过这个问题,但没有找到答案。
recursion - 为什么第二个解决方案比第一个更快?
首先:
第二:
请解释为什么第二种解决方案比第一种更好。我在考试中提供了第一个解决方案,并且我的观点被认为是解决方案无效的说法。我想知道最大的不同是什么
matrix-multiplication - 两个下三角矩阵相乘的复杂度
我知道两个完整矩阵相乘的下限是 Ω(n^2)。矩阵乘法
我一直在尝试使用问题变换方法证明两个下三角矩阵相乘的下界。
我最初的想法是(1)变换下三角矩阵,(2)估计这种变换的时间复杂度。
现在,我只需要证明O(lower_triangular_matrix_transformation(n))
并且我需要使三角矩阵成为一个完整的矩阵,所以为了简单起见,我只是让这个三角矩阵乘以它自身的一个变体,比如转置。
原因是下三角矩阵的平方仍然是下三角矩阵,而下三角矩阵乘以它的转置变化是一个“满矩阵”。
所以我只需要分析一个三角矩阵乘以它的转置变化的复杂度。
谁能指出我的想法是否“合理”?
algorithm - 如何计算此计数算法语句块的频率?
因此,我从《算法第 4 版》一书中得到了这个计数算法,该算法在算法分析一章中使用,它们计算每个循环的频率,内部循环中的 if 语句和开头的声明。
他们将每个部分分为 A、B、C、D 和 E 部分。他们说每个部分都有以下频率:
我知道所有这些频率都来自部分和,但我不明白他们是如何得出每个答案的,如果有人能解释我为什么每个频率都是这样的,我将不胜感激。
gruntjs - 目录中所有文件的 Grunt-complexity
我想对目录中的所有文件运行Grunt-Complexity ?我想得到这种输出。有办法吗?我的 js 文件都在一个名为“js”的子目录下。这是我的 gruntfile:
我只是通过键入来调用它
从命令行。那么如果我输入这个
我明白了
AgencyMediaController.js 是我的 js 目录中的第一个文件。所以它正在查看并列出文件,但随后它崩溃了。
谢谢!
eclipse - 需要关于 NPath 复杂性的启示
我将 PMD 添加到我的 Eclipse 工作区,并且正在清理代码。
我最复杂的方法说它的 NPath 复杂度为 804,没问题,它可能需要重构。
但是我有一个看起来相当简单的东西,它的 NPath 复杂度为 3125,这似乎是错误的:
我错过了什么吗?
c - 算法复杂度与运行时间
我有一个用于信号量化的算法。对于算法,我有一个方程来计算不同参数值的复杂性。该算法是用 C 实现的。有时根据等式,我的复杂性较低,但运行时间较高。我不是 100% 确定方程。
我的问题是运行时间和算法复杂度一直有直接关系吗?意味着,我们的复杂性越高,运行时间就越长?还是从一种算法到另一种算法不同?
javascript - 过滤一次或多次过滤
我有一个包含对象的数组:
我有许多函数为给定对象返回真/假
现在我想获取所有通过所有函数的对象。什么是最有效的?
或者
我不确定什么是最有效的,这取决于过滤器功能的重量?他们是一样的吗?