Как определять сложность алгоритма?
Какая сложность алгоритма в О нотации будет для сложения/умножения матриц? 
Умножение матриц - не алгоритм, а операция.
Алгоритм конкретный способ ее реализации.
Сложность 'наивного' алгоритма умножения - O(n^3)
Сложность, например, алгоритма Штрассена O(n^2,81) Есть ли какая-то формула или методика для рассчёта?!элементарно: считаете  количество (для О-нотации - максимальное) элементарных операций, необходимых для вычисления алгоритма для входных данных размерности n. Константу сокращаете.
ps:
'вычислительная сложность' показывает только отношение того, насколько дольше будет вычисляться алгоритм, при увеличении размера входных данных. но совершенно ничего не говорит о объеме вычислений в абсолютных цифрах.
многие 'быстрые' алгоритмы на малых размерах входных данных (в абсолютных цифрах) проигрывают 'медленным': да, количество вычислений с ростом n растет медленней, но вплоть до какого-то n самих вычислений больше
Сложность можно переложить в человеко-часы на реализацию.
Например:
- я реализовал алгоритм за 10 часов. Это было сложно.
- а я реализовал этот же алгоритм за 2 часа. Это было не сложно.
Само по себе понятие "сложность" - субъективное и зависит от множества факторов:
- опыт реализации подобных задач;
- наличие специфических знаний;
- среда разработки;
- самочуствие и тд.