我有一个矩阵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
使用CI写道:
for (i=0; i<array_length; i++) { for (k=0; k<array_length; k++) { if (i==k) continue; //Do something } } }
我想知道我是否可以使用复杂度较低的算法。
不,根据定义它是O(n ^ 2)[这里解释太久了,但请相信我( – :]
但是你可以减少一半的迭代次数:
for (i=0; i
您可能会做一些事情,但这些事情是可能的,并且不依赖于arrays性质和您应用的公式。 总体复杂性可能保持不变甚至增长,即使计算速度更快,除非公式具有复杂性依赖于其参数,在这种情况下可以实现复杂性的降低。
此外,如果B远小于A,则从AO(N ^ a)到BO(N ^ b) ,b> a (更高的复杂度)仍然值得追求,对于某些N的范围。
没有特别的顺序:
不,如果您包含数组内容的知识,以及优化算法的操作语义,则只能降低计算复杂度。
以上就是c/c++开发分享所有数组元素的比较 – C算法相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/562557.html