[Algorithm]가장 가까운 2의 멱수

BMP 이미지같은 파일 포맷은 가로(width)가 반드시 4bytes 의 배수가 되어야 한다. 이때 발생하는 padding을 계산하기위해, Width 보다 크고 가장 가까운 4의 배수를 찾아야한다. 고등학생 »

[Algorithm] Topological Sort

topological sort 위상정렬(topological sort)이란 일반적인 정렬과는 다르다. 위상정렬은 Graph에서 쓰이는 정렬 기법중 하나이다. 선행 조건은 그래프가 DAG(directed acycle graph)이여야 한다. 쉽게 설명하자면, »

[Algorithm] Hough Transform Line Detection

[Computer Vision] Hough Transform Line Detection 허프변환(선검출)은 이미지에서 직선을 검출하는 방법이다. 당연히 이미지=Edge를 적용한 이미지 이다. 우리는 기울기가 m , y절편이 n 인 수식을 »

[Algorithm] K-means

k-means는 Unsupervised Learning 에 속하는 Clustering Algorithm 이다. Unsupervised Learning 은 Training Data에 Label 이 없기 때문에, 비슷한 군집 끼리 분류를 해야한다. 클러스터를 정의하는 방법에는 많은 »

[Algorithm] Machine Learing

기계학습은 컴퓨터에게 코딩하지 않은 동작을 배우고 실행할 수 있도록 하는 능력(Arthur Samuel:1959) 이라고 정의 되었다. 어떻때 기계학습이 사용되는가? 이메일 스팸 필터를 생각해보자. 어떤 이메일이 »

[Algorithm] Dijkstra

[Graph] Dijkstra 다익스트라 알고리즘은 음의 가중치가 없는 그래프에서 최단거리를 구하는 알고리즘이다. 초기에 다익스트라가 구현한 버전은 O(V^2)의 복잡도를 가진다. 원리는 아래와 같다. 1번 vertex에서 »

[Algorithm] Least Square Method

[Math] Least Square Method 최소 자승법(or 최소 제곱법) 이라고 부르며 이는 여러개의 X,Y 에 대해 이를 만족시키는 함수 f(x)를 찾는 과정이다. 이 »

[Algorithm] Eucludean, Manhattan

Euclidean distance , Manhattan distance 유클리드 거리는 유클리드 공간에서 두 점 사이의 거리를 계산할때 사용된다. 2차원 평면에서 흔히 피타고라스의 정리라고 부르는것과 같다. n차원 직교 좌표계에서 벡터 p, »

[Algorithm] [Sort] Merge sort

Merge sort 병합정렬 합병정렬 병합정렬은 존 폰 노이만이 1945년에 고안한 정렬방법론이다. 분할정복 알고리즘을 기반으로 하는 정렬방법이다. 병합정렬은 안전한 정렬(stable sort)이다. 여기서 안전하다는 뜻은 같은 »

[Algorithm] [Sort] Bubble, Selection

버블 정렬은 정렬을 하는 모습이 수면위의 물방울이 튀는것과 비슷해 버블 정렬이라고 한다. 버블 정렬의 원리는 가장 큰 값을 맨 뒤로 보내는 작업을 n-1번 반복한다. n-1번을 반복하는 »

[Algorithm] [Sort] Heap sort

힙 정렬의 "힙" 은 두가지 용어로 사용된다. 첫번째는 자료구조 힙이고, 두번째는 메모리공간 힙이다. 여기서는 자료구조 힙에 대해 논의한다. 힙이란 간단하게 두가지 힙이 존재한다. 최대힙과 최소힙이다. (피보나치힙은 »

[Algorithm] [Sort] Insertion Sort

삽입 정렬이란 데이터가 들어가야할 위치를 찾아 그곳에 삽입하여 정렬을 한다. 이 글은 기본적으로 삽입정렬이 뭔지 아는 사람들을 위해 작성되었다. 삽입정렬이 정렬이 되는 원리를 말해보자면 데이터가 N개 »