일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 배열
- 빅 오 표기법
- JsonNode
- 선형 리스트
- @NoArgsConstructor
- 마크다운
- code
- 클린코드
- 쿠키
- 인터페이스
- CleanCode
- 마크다운 테이블
- 연결 리스트
- java
- 자료구조
- mysql
- 쿼리메소드
- 클래스
- WebClient
- 클린
- 코드
- 트리
- 정렬
- 스택 큐 차이
- @ComponentScan
- @RequiredArgsConstructor
- 내부 정렬
- 리스트
- 계산 검색 방식
- query
- Today
- Total
목록자료구조 (8)
Developer Cafe
○ 행의 개수가 m, 열의 개수가 n 일때 mn이 같은 행렬은 정방행렬이다. ○ 행렬의 행과 열을 서로 교환해 구성한 행렬을 전치행렬이라 한다. 1 2 3 4 5 6 1 4 2 5 3 6 ○ 실제 사용하는 공간보다 사용하지 않는 공간이 많아 기억공간에 대한 사용 효율성이 떨어지는걸 희소행렬 이라한다. 0 2 0 0 0 4 0 9 5 0 0 0 7 0 8 0 이는 배열로 0이 아닌 원소들에 대해 으로 추출가능하다.
만약 A(x) = 4x^3 + 3x^2 + 2 일때 아래와 같이 표현된다. 0 1 2 3 A 4 3 0 2 만약 A(x) = 3x^1000 + 1x^1 + 4 일때는 아래와 같이 표현된다. 0 1 2 3 4 ... 998 999 1000 A 3 0 0 0 0 ... 0 1 4 실제 사용하는 것은 3개뿐이고 998개의 배열 공간은 낭비된다. 그래서 아래와 같이 2차원 배열에 저장한다. [0] [1] [0] 1000 3 [1] 1 1 [2] 0 4 Ex) A(X) + B(X)을 구하는 식을 자바 코드로 나타내면 A(X) = 4x^3 + 3x^2 + 5x B(X) = 3x^4 + x^3 + 2x + 1 public class Ex { public static void main(String args[]) { f..
영업1팀 자동차 판매량 년/분기 1/4 2/4 3/4 4/4 2019년 63 84 140 130 2020년 157 209 251 312 영업2팀 자동차 판매량 년/분기 1/4 2/4 3/4 4/4 2019년 63 84 140 130 2020년 157 209 251 312 int sale[][][] = new int[][][] {{{63, 84, 140, 130}, {157, 209, 251, 312}}, {{59, 80, 130, 135}, {149, 187, 239, 310}}}; 분기, 연도, 팀에 대한 순서를 나타내야 하기 때문에 세 개의 인덱스가 필요하다. 3차원 배열이 필요하다. 3차원 논리 구조를 1차원의 물리 구조로 변환하는 방법은 인덱스인 면을 기준으로하는 방법과 마지막 인덱스인 열을 기준..
class Ex { public static void main(String srgs[]) { int sale[][] = new int[][] = {{63, 84, 140, 130}, {157, 209, 251, 312}); } } 0 1 2 3 0 63 [0][0] 84 [0][1] 140 [0][2] 130 [0][3] 1 157 [1][0] 209 [1][1] 251 [1][2] 312 [1][3] 2차원 배열일 경우 원소 위치 계산방법은 행 우선 순서와 열 우선 순서에 따라 달라진다 원소 위치 계산 - 행의 개수가 ni이고 열의 개수가 nj인 배열 A[ni][nj] 의 시작 주소가 a이고 원소 길이가 l 일때 A[i][j]의 위치는 행 우선 구조에서는 a+(ixni+j)xl 이 되고, 열 우선 구조..
int sale[] = new int[] {157, 209, 251, 312} 1차원 배열 sale은 int데이터 타입으므로 각 원소의 길이는 4바이가 된다. 배열 sale의 각 원소의 위치는 시작주소가 α일때 α+(인덱스 x 4바이트)가 된다. 문) 시작위치가 100번지이고 원소의 길이가 5바이트인 선형 리스트가 행 우선 순서 방법으로 저장되어있을 때, 9번째 원소의 주소는 얼마인가? (※ 9번째 원소의 인덱스는 8이 된다. 인덱스는 0부터 시작!) a+(ixℓ) = 100 + (8x5) = 140
(a) 원소 삭제 전 0 1 2 3 4 5 6 10 20 30 40 50 60 70 (b) 원소 삭제 후 (2번 자리 삭제 후 자리이동) 0 1 2 3 4 5 6 10 20 40 50 60 70 2번 자리 30을 삭제하면 빈자리가 생긴다. 이 자리를 채우기 위해 한칸씩 앞으로 이동해야되는데 이때 이동 횟수는 ( 마지막 원소의 인덱스 - 삭제한 원소의 인덱스) 가된다. 즉, 6 - 2 = 4 가 되므로 필요 이동 횟수는 4 읻다.
(a) 원소 삽입 전 0 1 2 3 4 5 6 10 20 30 40 50 60 (b) 원소 삽입 후(2번자리에 70 삽입) 0 1 2 3 4 5 6 10 20 70 30 40 50 60 이때 이동 횟수는 ( 마지막 자리 인덱스 - 삽입할 자리 인덱스 + 1 ) 이다. 즉, 2번 자리에 빈 자리를 만들기 위한 이동 횟수는 5 - 2 + 1 = 4 이다.
● 단순 구조 ● 선형 구조 ● 비선형 구조 ● 파일 구조 1. 단순구조 - 정수, 실수, 문자, 문자열 등의 데이터 타입으로 이루어진 구조 2. 선형구조 - 선형 구조는 자료간의 앞뒤 관계가 일대일로 고정되어 있는 구조로서, 리스트와 연결리스트, 스택, 큐, 텍 등이 있다. 순차 리스트는 자료의 논리적인 순서와 기억장소에 저장되는 물리적 순서가 일치하는 구조이다. 연결 리스트는 물리적인 순서에 상관없이 저장되어 있는 주소를 사용하여 논리적인 순서를 갖는 구조다. 스택과 큐, 텍은 자료의 삽입.삭제 위치에 대한 제한 조건을 가진 선형 구조다. 3. 비선형구조 - 자료 간에 선형구조가 아닌 계층 구조나 망 구조를 갖는 자료구조로서 트리와 그래프가 있다 4. 파일구조 - 서로 관련 있는 필드들로 구성된 레코..