본문 바로가기

플밍 is 뭔들/자료구조

01-3 행열의 순차 자료구조 표현

※행렬이란?
행과 열로 구성된 자료구조

※ 전치행렬 이란?
어떤 행렬에서 행과 열을 서로 교환하여 구성한 행렬
ex) 


※ 희소행렬 이란?
행렬의 원소 대부분이 0인 행렬

이 행렬을 구현할때 0인 원소를 그대로 넣어서 구현하면 메모리 낭비가 심해진다.(대부분이 0이기 때문에)

그래서 이 행렬은 값이 있는 원소들의 <행번호, 열번호, 값> 을 추출하여 2차원 배열을 만들어 저장하는것이 
메모리 관리에 유리하다. 또한 희소 행렬에 대한 전반적인 정보를 정보를 저장히기 위해서 2차원 행렬의 맨위에는 
<전체 행의수, 전체 열의수 , 0이아닌 원소의 개수>를 저장한다

그러면 아래와 같은 그림으로 희소행렬을 표현 할 수 있게된다.


★ 무엇인가를 만들 때 메모리 낭비를 줄일 수 있는 방법은 무엇인지 곰곰히 생각해 볼 필요가 있는것 같다.
희소행렬같은 경우에도 제일 아래의 그림처럼 2차원 행렬로 데이터를 표현하니까 필요없는 정보들 때문에
메모리를 낭비할 필요가 없고 희소행렬에 대한 전반적인 정보도 맨 위에 표시해 줄 수 있으므로
데이터를 어떤 방식으로 어떻게 표현하는지, 어떤것이 적합한지를 고민해보는것이 좀 더 좋은 프로그래밍을
할 수 있게 해주는 것 같다고 느껴진다.