【发布时间】:2016-02-04 08:52:34
【问题描述】:
当我读到一篇科学论文时:
算法的计算复杂度为
O(N^d),其中N是数据的数量,d是维度。因此与固定 维度,算法复杂度是多项式的。
现在,这让我想到,(如果我没记错的话)big-O 表示法是在二进制输入的数量中定义的。因此,如果我固定数据的维度,很自然会得出多项式解决方案。此外,如果我还要修复N,输入的数量,我会得到O(1) 解决方案,请参阅连接的帖子:
Algorithm complexity with input is fix-sized
我的问题是,如果您认为这是多项式复杂性的有效论证?真的可以修复一维和输入数据并声称多项式复杂度吗?
【问题讨论】:
-
不确定你在问什么,引用语句中的推理肯定是正确的。
-
是的,引文中的推理听起来是正确的。我在这里的困惑是说输入的大小是
D = N x d。因此,为了说明该算法是多项式的,我希望复杂度是D的多项式函数,而不是N。 -
“输入的大小是 D = N x d”:这不是那里所说的。相反,输入的大小为 N,并且算法有一个参数 d。
-
声明是一回事,如何定义大 O 表示法 Ordo 是另一回事,因为大 O 表示法是根据输入位定义的,因此如果我有 N 个数据点维度为 d,则输入数据应为 N x d。如果你明白我的意思,仍然不知道。
-
big-O 表示法的定义中没有任何内容表明自变量是以位为单位测量的,即使它必须是输入大小。符号只是关于函数的增长。
标签: algorithm big-o time-complexity