'CS/알고리즘 및 자료구조' 카테고리의 글 목록
동기(Synchronous), 비동기(Asynchronous), 블록킹(Blocking),논블록킹(Non-Blocking)
Reference - https://poiemaweb.com/js-async 동기 비동기 차이 동기는 요청 후 결과를 받을 때까지 다른 일을 하지 못한다. 비동기는 요청 후 결과를 받을 때까지 다른 일(다른 요청)을 할 수 있다. 동기(Synchronous) - 블록킹(Blocking)방식 동기식 처리는 직렬 적으로 태스크(task)를 수행한다. 즉, 태스크는 순차적으로 실행되며 어떤 작업이 수행 중이면 다음 작업은 블로킹(blocking, 작업 중단) 된다. T1, T2 트렌젝션의 단위를 동시에 맞춘다. 동기식 처리는 T1, T2의 -10000, +10000이 동시에 일어나기 위한 것으로, T1의 전송, T2의 결과 전송 후 동시에 진행 되어야 한다. 트랜젝션을 이용한 동시성 제어를 하기때문에 설계가 ..
2022. 2. 11.
C언어 - 힙 정렬 구현 코드
#include #define num 8 int node[] = {2,1,33,21,6,42,50,5}; void heapify(int n, int start, int *node) { int l,r,tmp; l = start*2+1; r = start*2+2; if(r>n) { return; } if(node[l] > node[start] || node[r] > node[start]) { if(node[l] > node[r]) { tmp = node[start]; node[start]=node[l]; node[l]=tmp; return heapify(n,l,node); } else { tmp = node[start]; node[start]=node[r]; node[r]=tmp; return heapify..
2021. 5. 21.
c언어 - 쉘 정렬 (Shell's Sort)
쉘정렬은 삽입 정렬의 개선판으로 생각하고 접근하면 편하다. 그러므로 사전지식으로 삽입정렬을 이해하고 있어야한다. 간단하게 삽입 정렬은 한번에 하나의 값만 바꿔가며 정렬하는 알고리즘이다. 만약 8,2,4,5,1,9 라는 배열이 있다고 가정하고 삽입 정렬을 하면 단1회 만으로 1,2,4,5,8,9 로 정렬이 된다. 이런 장점을 키운 정렬이 쉘 정렬이다. *참고 - 삽입 정렬 쉘 정렬은 갭의 크기가 줄어들면서 정렬되는 알고리즘이다. 예를들어 n개의 값을 가지고 있는 배열이 있다고 가정하면, 처음 갭은 n/2인 값으로 그 후의 갭은 전의 갭/2 인 값으로 정렬해 나간다. *갭은 짝수보다 홀수가 좋다, 갭이 짝수일때 + 1을 해서 홀수를 만들어주자 *c언어에서 정수인 변수의 소숫점은 무시된다. ex) 1.9 =>..
2020. 12. 18.