Array 배열의 크기는 한 번 정하면 변경할 수 없다. 배열 초기화 시에 메모리에 할당되어 ArrayList보다 속도가 빠르다. 논리적 저장 순서와 물리적 저장 순서가 일치한다. 인덱스를 사용해 특정 원소에 접근이 가능하다. 즉, Random Access(비순차적 접급)가 가능하다. 인덱스를 알고 있다면 특정 원소에 접근하는 시간 복잡도는 O(1)이다. 생성할 때 데이터를 저장하는데 필요한 메모리를 한 번에 확보해서 사용한다. (연속된 메모리 사용) 배열의 크기를 바꿀 수 없다. 즉, 배열의 크기는 제한적이다. 배열의 원소를 삭제할 경우 삭제한 원소보다 큰 인덱스를 값을 갖는 원소들을 1씩 옮겨줘야 하기 때문에 시간 복잡도는 O(n)이다. 배열의 원소를 삽입할 경우 배열의 크기가 충분할 때는 시간 복잡..
메모리 저장 구조 메모리 할당 * 정적 할당 - 메모리의 크기가 하드 코딩(하드 코딩 : 데이터를 코드 내부에 직접 입력하는 것)되어 실행하는 순간 정적으로 할당 - 프로그램이 실행 될 때 이미 해당 메모리의 크기가 결정됨(컴파일 시) - 프로그램이 종료할 때 알아서 운영체제가 회수 - 장점 : 해제하지 않음으로 인한 메모리 누수문제를 신경쓰지 않아도 됨 - 단점 : 스택에 할당된 메모리이므로 할당 받을 수 있는 최대 메모리에 제약이 있다. * 동적 할당 - 실행 시간 동안 사용할 메모리 공간을 할당하는 것 - 사용 후 운영체제에 반납, 재할당 가능 - 힙 영역에서 할당 - 프로세스가 동작중일 때 명시적으로 해제하거나 또는 GC에 의해 해제됨(그전까지 그대로 유지), C++에는 GC가 없기 때문에 해제해..
* 우선순위 큐(Priority Queue) : 일반적인 큐는 먼저 들어간 데이터가 먼저 나오는데, 우선순위큐는 우순순위가 가장 높은 데이터가 먼저 나온다. * 우선순위 큐를 구현하는 방법 3가지 1. 배열을 기반으로 구현 : 배열은 삽입, 삭제하는 과정에서 데이터를 한 칸씩 옮겨야 한다는 단점이 있음 2. 연결리스트를 기반으로 구현 : 삽입의 위치를 찾기 위해 처음부터 우선순위를 비교해야 한다. 3. 힙을 이용하여 구현 주로 힙을 이용하여 구현한다. * 우선순위 큐 저장 : 숫자가 작을수록 우선순위가 높다. : 새로운 데이터 '3'을 추가한다. 추가할 때는 가장 마지막 위치에 추가한다. 그리고 부모 노드와 우선순위를 비교하면서 위치를 바꿔준다. : '3'의 부모인 '8'과 비교하였을 때 '3'이 우선순..
너비 우선 탐색이란? 루트 노드 혹은 다른 임의의 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법이다. 너비 우선 탐색과정 루트에서 시작한다. 자식 노드들을 큐에 저장한다. 큐에 저장된 노드들을 차례로 방문한다. 또한 각각의 자식들을 큐에 저장한다. 큐에 저장된 노드들을 차례로 방문한다. 또한 각각의 자식들을 큐에 저장한다. 위의 과정을 반복한다. 모든 노드를 방문하면 탐색을 마친다. 다음과 같이 진행하면 탐색 순서는 0 -> 1 -> 2 -> 3 -> 4 -> 5 가 된다. 너비 우선 탐색 특징 - DFS로 탐색할 시에는 무한한 길이의 경로에서 영원히 종료하지 못하지만, BFS의 경우는 모든 경로를 동시에 진행하기 때문에 탐색이 가능하다. - 한 갈림길에서 연결되는 모든 길을 한번씩 탐색하기 때문에..
- Total
- Today
- Yesterday
- MFQ
- N-Queen
- 자료구조
- 프로그래머스
- 백트래킹
- loss function
- Process Scheduling
- DFS
- binarySearch
- java
- git
- MLQ
- 사회망서비스
- Android
- 기능개발
- 농협정보시스템IT
- 우선순위큐
- SWExpert
- hash
- 4-way-handshake
- 백 트래킹
- hashtable
- Objective function
- 알고리즘
- programmers
- 프로세스 스케줄링
- 3-way-handshake
- 네트워크
- SRTN
- algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |