일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말한다. 일반적으로 트리나 그래프를 말한다. 그래프 정점과 간선으로 이루어진 자료 구조를 말한다. 정점과 간선 어떠한 곳에서 어떠한 곳으로 무언가를 통해 간다고 했을 때 '어떠한 곳'은 정점이고 '무언가'는 간선이 된다. 간선은 단방향, 양방향이 있다. 정점으로 나가는 간선을 해당 정점의 outdegree라고 하며 들어오는 간선을 정점의 indegree라고 한다. 이렇게 정점과 간선으로 이루어진 집합을 그래프라고 한다. 가중치 간선과 정점 사이에 드는 비용을 말한다. 예를 들어 1번 노드에서 2번 노드까지 가는 비용이 한 칸이라면 1번 노드에서 2번 노드까지의 가중치는 한 칸이다. 트리 그래프 중 하나로 그래프의 특징처럼 정점과 간선으로 이루어져 있..
요소가 일렬로 나열되어 있는 자료 구조를 말한다. 연결 리스트 데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화시킨 자료구조이다. 삽입과 삭제가 O(1)이 걸리며 탐색에는 O(n)이 걸린다. prev 포인터와 next 포인터로 앞과 뒤의 노드를 연결시킨 것으로 연결 리스트에는 싱글 연결 리스트, 이중 연결 리스트, 원형 이중 연결 리스트가 있다. 맨 앞에 있는 노드는 헤드(head)라고 한다. 싱글 연결 리스트 : next 포인터만 가진다. 이중 연결 리스트 : next 포인터와 prev 포인터를 가진다. 원형 이중 연결 리스트 : 이중 연결 리스트와 같지만 마지막 노드의 next 포인터가 헤드 노드를 가리킨다. 앞에서부터 요소를 넣는 push_front(), 뒤에서부터 요소를 넣는 pus..
복잡도 시간 복잡도와 공간 복잡도로 나뉜다. 빅오 표기법 시간 복잡도란 '문제를 해결하는 데 걸리는 시간과 입력의 함수 관계'를 가리킨다. 알고리즘의 로직이 '얼마나 오랜 시간'이 걸리는지를 나타내는 데 쓰이며, 보통 빅오 표기법으로 나타낸다. 다음 코드는 '입력 크기 n'의 모든 입력에 대한 알고리즘에 필요한 시간이 10n^2 + n이라고 했을 때의 내용이다. for (int i = 0; i < 10; i++) { for (int j = 0; j < n; j++) { for (int k = 0; k < n; k++) { if (true) cout
- Total
- Today
- Yesterday
- 정렬병합조인
- 디자인 패턴
- 프로세스와 스레드
- 보이스코드정규형
- 중첩루프조인
- 프로세스
- 스프링 WebFlux
- 스프링 R2DBC
- Design Pattern
- 인덱스최적화
- 프로그래밍
- 직접연관매핑
- 클러스터형인덱스
- 캐시매핑
- 자바
- 프로세스 컴파일
- 세컨더리인덱스
- 선언형 프로그래밍
- 함수형 프로그래밍
- 프로그래밍 패러다임
- 네트워크
- 스레드
- 불연속할당
- 메모리 계층
- 직접매핑
- 코틀린
- 연관매핑
- 대수확장성
- java
- 네트워크 기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |