[운영체제] 싱글 스레드와 멀티 스레드
·
CS/운영체제
스레드(thread)란?프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미한다.모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다.스레드에는 싱글 스레드, 멀티 스레드가 있다. 싱글 스레드프로세스가 단일 스레드로 동작하는 방식한번에 하나의 작업만 수행할 수 있음을 의미한다.다른 작업이 중간에 끼어들 수 없고, 기존에 수행하던 작업이 끝나야만 그 다음 작업을 수행할 수 있다싱글 스레드는 프로세스 내에서 하나의 메인 스레드만으로 차례대로 작업을 처리한다.후행 스레드는 선행 스레드의 작업이 끝날때까지 기다려야 한다. 장점1. 자원 접근에 대한 동기화를 신경쓰지 않아도 된다.여러 개의 스레드가 프로세스의 자원을 공유할 경우, 각 스레드가 원하는 결과를 얻게 하려면 공용 자원에 대한..
[알고리즘] 정렬
·
CS/Algorithm
1. 선택정렬(Selection Sort)선택한 값과 나머지 요소들을 비교하여 가장 작은 값을 찾아 현재 위치와 교환하는 정렬 알고리즘각 단계에서 배열의 나머지 부분 중 최솟값을 찾아서 현재 위치와 교환void selectionSort(int[] arr) { for (int i = 0; i  시간 복잡도Avg: O(n^2)Worst: O(n^2)Best: O(n^2) 2. 삽입정렬(Insertion Sort)배열의 요소를 앞에서부터 차례대로 탐색하면서, 이미 정렬된 부분과 비교하여 각 요소를 적절한 위치에 삽입하는 정렬 알고리즘 이미 정렬되어 있는 경우에 효율적이다.void insertionSort(int[] arr) { for (int i = 1; i = 0 && temp  시간 복잡도Av..
[자료구조] 그래프(Graph)
·
CS/Algorithm
그래프란?그래프(graph)는 노드(node)와 그 노드를 연결하는 간선(edge)의 집합으로 구성된 자료 구조입니다.  그래프 종류무방향 그래프 / 방향 그래프: 간선에 방향이 있거나 없음가중치 그래프: 간선에 비용이 할당됨완전 그래프: 모든 노드가 서로 연결됨비연결 그래프 / 연결 그래프순환 그래프 / 비순환 그래프 그래프 탐색 알고리즘그래프 탐색이란, 임의의 시작점 x로부터 시작해서 모든 정점을 한 번씩 방문하는 것을 뜻합니다. DFS(Depth First Search)BFS(Breadth First Search DFS (Depth-First Search)DFS는 깊이 우선 탐색이라고도 불리며, 그래프에서 깊이를 우선으로 탐색하는 알고리즘입니다. 이 알고리즘은 한 경로를 끝까지 탐색한 후 다음 경로..
[자료구조] 힙(heap)과 우선순위 큐(Priority Queue)
·
CS/Algorithm
힙(heap)힙은 이진 트리로서 마지막 레벨을 제외하고는 완전히 채워져 있고 마지막 레벨은 왼쪽부터 꽉 채워져 있다.힙의 모든 노드는 하나씩의 값을 갖고 있고 부모 노드가 가진 값은 자식 노드의 값보다 무조건 크거나(Max Heap) 작아야(Min Heap) 한다. 최대 힙(Max Heap): 부모 노드의 값이 자식 노드의 값보다 큰 힙최소 힙(Min Heap): 부모 노드의 값이 자식 노드의 값보다 작은 힙  배열로 힙을 표현할 때왼쪽 자식 노드의 인덱스 = 부모 노드의 인덱스 * 2오른쪽 자식 노드의 인덱스 = 부모 노드의 인덱스 * 2 + 1부모 노드의 인덱스 = 자식 노드의 인덱스 / 2 우선순위 큐(Priority Queue)우선순위 큐는 지금까지 설명한 힙을 이용하여 만든 자료구조이다.일반적인..
[자료구조] 트리 (Tree)
·
CS/Algorithm
트리 (Tree)트리(Tree)는 계층적인 구조를 나타내는 비선형 자료구조로 그래프(Graph)의 특수한 형태이다.트리는 노드(Node)와 간선(Edge)으로 이루어져 있다.트리는 하나의 루트 노드를 가지고 있으며, 각 노드는 0개 이상의 자식 노드를 가질 수 있다. 트리의 주요 개념과 용어노드(Node) : 트리의 기본 단위로 데이터를 저장하는 요소다. 각 노드는 부모 노드와 하위 노드(자식 노드)를 가질 수 있다.루트(Root) : 트리의 맨 위에 있는 노드로, 트리는 하나의 루트 노드만을 가진다.부모(Parent)와 자식(Child) : 다른 하나 이상의 노드(자식 노드)를 가리키는 노드다. 자식 노드는 그 부모 노드에 의해 생성된다간선(Edge) : 트리를 구성하기 위해 노드와 노드를 연결하는 선..