大O表示法仅取决于矩阵大小还是取决于数据类型(整数,布尔值)?

大O表示法仅取决于矩阵的维数吗?或也取决于数据类型(整数或布尔值)。

假设我有两个矩阵大小为mat = M x N的矩阵,必须将它们相乘。如果矩阵的数据类型是整数,则计算机上的运行时间会有所不同,但是如果数据类型是bolean [+ 1,-1],则会减少计算机上的运行时间。如何通过考虑数据类型来编写大O表示法。

fzamcy 回答:大O表示法仅取决于矩阵大小还是取决于数据类型(整数,布尔值)?

您没有考虑到它; big-O在所有情况下都是相同的。 Big-O与缩放有关;相对于基准工作,随着输入量的增加,您要进行多少更多工作?

除非算法为矩阵的每个元素缩放到任意位长,否则布尔值和整数之间的差将是一个常数乘数,并且常数乘数将以big-O表示法忽略。对于16 vs. 8 vs. 2 vs. 1的选择,并不是真正的任意增长。对于10x10矩阵,16位可能需要1位的时间的16倍,但是对于20x20矩阵,如果还需要1位的时间的16倍,则比例因子是相同的。

注意:在实际硬件上,性能可能会发生更明显的变化(停止适合高速缓存行的矩阵或根本无法适应高速缓存的矩阵会显着改变行为),但是big-O是关于理想化的计算设备,没有这样的限制。

本文链接:https://www.f2er.com/3144837.html

大家都在问