[기본] 배열 & 희소 표현

dia·2023년 9월 29일
0

다항식 표현

다항식 일반 표현법

1차원 배열로 표현
모든 항을 표현하는 방식
계수가 0인 항도 공간을 할당해주어야 함

배열의 인덱스 = 차수
배열의 요소 = 계수

  • 예시
//6x^5 + 5x^3 + 4x + 3 을 표현:
int[] polynomial = {6, 0, 5, 0, 4, 3};

희소 다항식 표현법

2차원 배열로 표현
계수가 0이 아닌 항만 표현하는 방식
항이 많을수록 메모리 절약 가능

하나의 열 = 하나의 항 = {차수, 개수}

  • 예시
//6x^5 + 5x^3 + 4x + 3 을 표현:
int[][] sparsePolynomial = {{6, 5}, {5, 3}, {4, 1}, {3, 0}};


행렬 표현

행렬 일반 표현법

하나의 행에 행렬의 한 행을 표현
모든 원소를 표현하는 방식
0인 원소도 공간을 할당해주어야 함

배열의 행 = 행렬의 행 = {원소 n행 1열, 원소 n행 2열, 원소 n행 3열}

  • 예시
/*
* 0 1 3
* 8 0 1
* 3 0 0
*/
int[][] matrix = {{0, 1, 3}, {8, 0, 1}, {2, 0, 3}};

희소 행렬 표현법

하나의 요소에 하나의 원소를 표현
0이 아닌 원소만 표현하는 방식
원소가 많을수록 메모리 절약 가능

배열의 원소 = {행, 열, 값}

  • 예시
/*
* 0 1 3
* 8 0 1
* 3 0 0
*/
int[][] sparseMatrix = {{0, 1, 1}, {0, 2, 3}, {1, 0, 8}, {1, 2, 1}, {3, 0, 0}};
profile
CS 메모장

0개의 댓글