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

Big O notation depend on matrix size only or data type(integer, Boolean) as well?

大O符号是否只依赖于矩阵的维数?或者它也将取决于数据类型(整数或布尔值)。

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

你没有考虑; big-O 在所有情况下都是相同的。 Big-O 是关于 缩放 ;随着输入规模的增长,相对于基线工作,你做了多少更多工作?

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

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