【发布时间】:2013-03-18 21:10:52
【问题描述】:
我有一个矩阵 m * n 并且对于每一行,我需要比较它们之间的所有元素。 对于我找到的每一对,我都会调用一个函数来执行一些计算。
例子:
my_array -> {1, 2, 3, 4, 5, ...}
I take 1 and I have: (1,2)(1,3)(1,4)(1,5)
I take 2 and I have: (2,1)(2,3)(2,4)(2,5)
and so on
我用 C 写了这个:
for (i=0; i<array_length; i++) {
for (k=0; k<array_length; k++) {
if (i==k) continue;
//Do something
}
}
}
我想知道是否可以使用复杂度较低的算法。
【问题讨论】:
-
在不知道具体计算的情况下,无法判断可以优化什么。
-
那么,你真的有一个矩阵,还是你只是在谈论小自然数的排列?
-
有 n^2 对,所以你不能比 n^2 做得更好...
标签: c arrays algorithm matrix comparison