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



大O表示法是否仅取决于矩阵的维数?或者它也将取决于数据类型(整数或布尔值(。

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

您没有将其考虑在内;big-O在所有情况下都是相同的。Big-O是关于缩放;相对于基线工作,随着输入大小的增长,您要做多少更多的工作?

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

注意:在实际硬件上,性能可能会有更明显的变化(停止拟合缓存行或缓存中的矩阵可能会显著改变行为(,但big-O是关于理想化的计算设备,没有这些限制。

最新更新