Наивный алгоритм, который вы получите после того, как исправите его, как отмечено в комментариях, - это O (n ^ 3).
Существуют алгоритмы, которые несколько уменьшают это, но вымаловероятно, чтобы найти реализацию O (n ^ 2).Я считаю, что вопрос о наиболее эффективной реализации до сих пор остается открытым.
См. Эту статью в Википедии по Умножение матриц для получения дополнительной информации.