求解!矩阵相乘的复杂度
一般的矩阵相乘算法matrix_self_multiply(...)(输入矩阵自相乘N=M*M,无需矩阵分块,只是简单的3重for循环的那种)的复杂度均认为是o(n^3)
而选择排序的算法sort(...)大家均认为是o(n^2)
如果我写一个函数
// 假设长度 n 为某个数的平方 n = t^2,以方便矩阵自相乘的运算条件
void test0(int[] array, size_t n)
{
sort(array, n); // 注意这里输入的数据的长度是 n = t^2
matrix_self_multiply(array, n); // 请注意这里函数的实现for 的范围是[1, t],关键的运算步骤是执行了 t^3 = n^1.5
}
的计算复杂度度少呢?o(n^2) 还是 o(n^3)?
如果是o(n^2),那么
void test1(int[] array, size_t n)
{
// sort(array, n);
matrix_self_multiply(array, n);
}
的复杂度是度少?还是o(n^2)?不是说矩阵相乘的复杂度是o(n^3)?