일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- code
- @NoArgsConstructor
- 내부 정렬
- query
- 연결 리스트
- 클래스
- 빅 오 표기법
- 스택 큐 차이
- 선형 리스트
- 정렬
- mysql
- 자료구조
- JsonNode
- @RequiredArgsConstructor
- 클린
- 코드
- 마크다운 테이블
- 배열
- 쿼리메소드
- WebClient
- 클린코드
- 계산 검색 방식
- @ComponentScan
- java
- CleanCode
- 마크다운
- 쿠키
- 인터페이스
- 트리
- 리스트
- Today
- Total
목록배열 (7)
Developer Cafe
노드 연결 리스트는 서로 인접 하지 않은 메모리 셀 묶음으로 이뤄진다.. 컴퓨터 메모리 전체에 걸쳐 여러 셀에 퍼져 있을 수 있다. 서로 인접하지 않은 이러한 셀을 노드라 부른다. "a" 1652 "b" 1983 "c" null 1000 1001 1652 1653 1983 1984 배열 vs 연결 리스트 차이 - 연결 리스트를 다루는 코드는 항상 첫 번째 노드가 메모리 어디에서 시작하는지 알고 두번째 세번째 링크를 따라 나머지 리스트를 검색할 수 있다. - 연결 리스트가 배열보다 나은 점 중 하나는 프로그램이 데이터를 저장하기 위해 메모리 내에 나란히 이어진 빈 셀 묶음을 찾을 필요가 없다는 점이다. 연산 배열 연결 리스트 읽기 O(1) O(N) 검색 O(N) O(N) 삽입 O(N)(끝에서 하면 O(1)..
정렬된 배열([1, 3, 5, 9, 15])은 삽입, 삭제가 일반 배열([3, 5, 1, 15, 9])보다 거쳐야 되는 단계수가 더 많다. 그러나 선형검색(인덱스0부터 차례차례)대신 이진검색(100의 중앙 50찾고 50중앙 25찾고 점점 찾고자하는 값에 절반을 날려 단계수가 대폭 줄어듬)을 사용할 수가 있다. 결론 : 만들고자하는 서비스에 사용될 알고리즘이 데이터 검색은 거의 없고, 데이터를 추가하기만 한다면 일반 배열이 더 나을 수 있으나, 검색 기능이 더 많은 서비스를 구현할때는 정렬된 배열이 훨씬 낫다.
1. 배열의 인덱스는 0부터 시작하며 인덱스 0의 메모리 주소는 1010이다. 2. 인덱스 3은 인덱스 0부터 정확히 세 슬롯 뒤에 있다. 3. 따라서 인덱스 3을 찾으려면 1010+3인 1013 메모리 주소로 간다.
영업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
메모리 주소를 계산할 수 있는 참조 값을 다루기 위한 타입으로 배열, 클래스, 인터페이스, 열거 타입으로 나뉜다. 1. 배열 타입 - 같은 데이터 타입을 가진 데이터들을 메모리에 연속으로 저장하여 만든 데이터들의 그룹이다. 2. 클래스 타입 - 여러 타입의 변수와 메소드를 그룹으로 묶어서 새롭게 정의한 사용자 정의 타입이다. 데이터 타입을 정의할 때는 그 데이터를 연산하라 수 있는 메소드도 함께 정의해야 한다. 자바 기본 타입은 그에 대한 메소드가 이미 정의되어 있으므로 메소드 정의없이 타입에 대한 변수만 선언하고 사용한다. 3. 인터페이스 타입 - 인터페이스 타입은 여러 클래스 타입에서 공통으로 사용하는 상수와 메소드를 따로 분리하여 추상화시킨 타입이다. 클래스 타입과 유사하지만, 데이터 멤버에 상수만..