하찮은 19학번 컴공대생
yoonbot's devlog

알고리즘 저장소 (Algorithm Library) ⏱/Matrices (행렬)

Basic Matrix Addition (기본 행렬 덧셈)

yoonbot_code 2021. 7. 22. 02:51

중학교 및 고등학교 수학 과정에서 한 번쯤 행렬을 접해봤을 것이다. 대학교 선형대수학 과정에서 행렬의 무효공간 (null space)을 배우게 되지만 적어도 중학교/고등학교 수학 과정에서 행렬을 접했을때 주로 기본적인 행렬 덧셈 곱셈을 배웠을 것이다.

 

 

 

 

이번 글은 먼저 두 행렬을 더하는 알고리즘을 이용해 프로그램을 완성하였다. 네이브 메서드를 사용했고 의사코드는 다른 알고리즘들에 비해 매우 짧고 간단하다. 

 

  Matrix-Add(A[][N],B[][N],C[][N])
    for i = 0 to N
        for j = 0 to N
        // Add all the elements from Matrix A and Matrix B.
        C[i][j] = A[i][j] + B[i][j]

 

 

 

해당 알고리즘은 nested for loop을 이용하기 때문에 시간 복잡도는 O(n^2)이며, 공간복잡도도 마찬가지로 O(n^2)이다. 

 

완성된 프로그램은 아래 레포지토리에 첨부 되어있다. 

 

 

GitHub - yoonBot/Algorithm-Library: a library of algorithms sorted by their categories.

a library of algorithms sorted by their categories. - GitHub - yoonBot/Algorithm-Library: a library of algorithms sorted by their categories.

github.com

 

다음 글은 기본 행렬 곱셈 편을 살펴보겠다. 이 알고리즘도 사실 덧셈 알고리즘이랑 별 차이가 없다 (그냥 for loop 하나 더 겹쳐지는 부분 외엔). 하지만 시간복잡도와 공간복잡도는 살짝 다를 것이다.