본문 바로가기
728x90

Quality control (Univ. Study)196

Algorithm Design - 셸 정렬 / 퀵 정렬 / 힙 정렬 / 계수 정렬 / 기수 정렬 Shell Sort 셸 정렬(Shell Sort)은 삽입 정렬을 개선한 버전으로, 1959년 도널드 셸(Donald Shell)에 의해 발표되었다. 삽입 정렬이 이웃하는 요소들과의 비교만을 수행하는 반면, 셸 정렬은 떨어진 요소들과의 비교를 통해 더 빠른 정렬을 가능하게 한다. Stable하고 In-place정렬법이라는 장점이 있다. 우선 정렬 과정을 직접 보자. 정렬과정에서 볼 수 있듯이 셸 정렬에서는 '간격(gap)'이라는 개념을 사용하여, 간격만큼 떨어진 요소들을 서로 비교하고 정렬한다. 초기 간격은 보통 배열 크기의 절반으로 설정하고, 각 단계마다 간격을 줄여나간다. 설정된 간격에 따라 배열을 여러 부분 리스트로 나누고, 각 부분 리스트에 대해 독립적으로 삽입 정렬을 수행한다. 간격을 줄여가며 위.. 2024. 3. 22.
Digital Image Processing - 기본지식(2) Internal Processing of Digital Camera 위와 같이 H/W적인 과정과 S/W적인 과정이 모두 나타난 종합적인 Digital camera의 작동 과정이 요약되어 설명되어있다. digital image는 위 그림과 같이 pixel(picture element)로 이루어져 있다. 좌측 그림을 sampling, quantization하면 우측그림처럼된다. Image resolution 이미지 해상도는 디지털 이미지의 세밀함과 정확도를 결정하는 중요한 요소다. 해상도는 크게 두 가지로 나뉜다: 공간 해상도와 강도 해상도다. 공간 해상도는 이미지를 구성하는 픽셀의 밀도로, 특정 단위 면적 당 픽셀의 수를 의미한다. 일반적으로 dpi(dots per inch)라는 단위로 표현되며, 인쇄물에.. 2024. 3. 22.
알고리즘 설계 실습 - 두 정삼각형 문제 첫 번째 줄에는 1개의 수를, 두 번째 줄에는 2개의 수를, …, N번째 줄에는 N개의 수를 아래 그림 과 같이 배치한 같은 크기의 정삼각형 A, B가 주어진다. 각 위치에 있는 수는 0 또는 1이다. 정삼각형을 시계방향 또는 반시계 방향으로 120도 회전시키거나 좌우로 대칭시킬 수 있다. 예를 들어, 위 그림의 정삼각형 A를 회전시켜서 얻을 수 있는 정삼각형들은 다음과 같다. A를 횟수 제한 없이 회전시키거나 대칭시켜 B와 차이가 최소로 나게 하라. 이때 차이가 얼마인지 구하라. 차이라는 것은 일치하지 않는 부분의 개수이다. 입력 첫 번째 줄에 A, B의 크기 N이 주어집니다. 두 번째 줄부터 N+1번째 줄까지, 정삼각형 A의 각 위치에 있는 수들이 주어집니다. i+1 (1≤i≤N)번째 줄에는 정.. 2024. 3. 21.
Digital Image Processing - 기본 지식(1) Human Eye Cornea - 각막 Iris - 홍채 Anterior chamber - 전안방 Ciliary body - 모양체 Lens - 수정체 Vitreous humor - 초자체 Fovea - 중심와 Blind spot - 맹점 Retina - 망막 Sclera - 공막 Choroid - 맥락막 Cones vs. Rods Cone cell - 원추세포: Color sensing, >4.5M -장파장(Red), 중파장(Green), 단파장(Blue)에 반응하는 3가지 종류가 있다. Rod cell - 간상세포: 덜 강한 빛을 감지하는 세포이다. >90M Brightness Adaptation 인각의 시각 시스템의 범위는 10^-6부터 10^4로 밝기 인식이 가능한 범위가 매우 크다. 그러나 이 .. 2024. 3. 17.
Algorithm Design - Master Theorem 마스터 정리T(n) = aT(n/b) + f(n)와 같은 모양을 가진 점화식은 마스터 정리에 의해 바로 분석할 수 있다. 이번 수업시간에 다룬 내용이어서 정리를 하긴하겠으나 마스터 정리는 이전에도 정리를 했었기에 가볍게 정리하고 넘어가자.n^(logb a) = h(n)이라 하면 아래와 같이 복잡도를 구할 수 있다.  이걸 직관적으로 표현하면 아래와 같다. 1. h(n)이 더 무거우면 h(n)이 수행시간을 결정한다.2. f(n)이 더 무거우면 f(n)이 수행시간을 결정한다.3. h(n)과 f(n)이 같은 무게이면 h(n)에 logn을 곱한 것이 수행시간이 된다. 이때 마스터 정리를 이용할 수 있는 조건이 존재한다. 1. f(n)은 asymptotically positive funct.. 2024. 3. 14.
Algorithm Design - 실습(GDC_LCM, Sort) GDC_LCM 최대공약수, 최소공배수를 구하는 과제이다. #include using namespace std; // 최대공약수를 계산하는 함수 int gcd(int a, int b) { int min, ans = 0; if(a>b){ min = b; } else{ min = a; } for (int i=1; ib){ base = a; } else{ base = b; } for (int i=base; ;i++) { if ((i%a == 0) && (i%b == 0)) { return i; } } } int main() { int a, b; cin >> a >>b; cout n; // 첫 번째 줄에서 n 을 입력받음 int* numbers = new int[n]; // 동적으로 정수 배열을 할당 // 두 번.. 2024. 3. 13.
Digital Image Processing - Intro Intro 디지털 영상 처리란 x,y라는 공간좌표를 이용한 f(x,y)함수로 표현된 2D 이미지를 다루는 것이다. 과정을 살펴보면 이미지를 sensor를 통해 sampling하고 quantization하여 matrix로 표현하여 처리하는 것이다. matrix를 다루는 단순한 코드를 살펴보면 아래와 같다. int i, j, k; int nr, // number of rows nc, // number of columns nchan; // number of channels nr = 128; nc = 128; nchan = 3; for (i=0; i 2024. 3. 13.
Algorithm Design - 복잡도 분석 Big O Big O notation으로 어떻게 표현되는 알고리즘이느냐에 따라 아예 수행이 불가능한 알고리즘이 될 수도 있다. 점근적 상한(Asymptotic Upper Bound) 방법을 이용하여 정의되고 표현한다. 주어진 복잡도 함수 f(n)에 대해서 g(n)∈O(f(n)) 이면 다음을 만족한다. n≥N인 모든 정수n에 대해서 g(n) ≤ c x f(n)이 성립하는 실수 c>0와 음이 아닌 정수 N이 존재한다. 이는 아래와 같이 그래프를 통해 살펴볼 수 있다. 어떤 함수 g(n)이O(n^2)에 속한다는 말은 그 함수는 어떤 임의의 N값보다 큰 값에 대해서는 어떤 2차함수 cn^2 보다는 작은 값을 가지게 된다는 것을 뜻한다. (그래프 상에서는 아래에 위치) 반대로 어떤 알고리즘의 시간복잡도가 O(f(.. 2024. 3. 13.
Algorithm Design - Intro/Data structure Intro 이전에도 타과의 알고리즘 강의를 청강해서 들었으나 실습이 포함된 실습과목을 통해 직접 코드 설계하는 실력도키우고 설계학점도 채울겸 알고리즘 설계 수업을 수강하게 되었고 해당 수업 내용을 정리하는 시리즈가 될 것이다. 우선 알고리즘이란 특정문제를 해결하기 위해 기술한 일련의 명령문이다. 본격적으로 구체적인 알고리즘들을 학습하기전에 복습겸 간단한 기초와 데이터 구조에 대해서 살펴보자. 알고리즘의 요건으로는 크게 세가지 정도로 볼 수 있다. - 완전성과 명확성: 수행결과와 순서가 완전하고 명확하게 명세되어야하고 순수하게 알고리즘이 지시하는대로 실행하기만하면 의도한 결과가 얻어져야하는 것이다. - 입력과 출력: 입력은 알고리즘이 처리해야할 대상으로 제공되는 데이터이고 출력은 입력데이타를 처리하여 얻은.. 2024. 3. 9.
728x90