본문 바로가기

알고리즘

(10)
[알고리즘] 정렬 알고리즘하면 가장 기초가 되는 것은 정렬이라고 생각한다.정렬이란 데이터나 요소를 특정 기준에 따라 순서대로 배열하는 과정을 의미한다.이러한 정렬 알고리즘에는 여러가지가 있는데 여기서는 버블 정렬, 삽입 정렬, 병합 정렬, 퀵 정렬에 대해서 다뤄볼것이다. 1. 버블 정렬버블 정렬의 작동 방식은 인접한 두 값을 비교해가며 정렬하는 것이다.가장 기본적인 정렬방식이자 비효율적인 정렬 방식의 1티어(?)라고 볼 수 있다.그 이유는 평균적인 시간복잡도가 N^2이기 때문이다.물론 버블 정렬은 최상의 케이스에는 한번씩만 값을 비교하고 끝나기 때문에 이 경우에는 N의 시간복잡도를 가질 수 있다.하지만 이는 이미 정렬된 케이스를 의미하며 평균적으로는 N^2의 시간복잡도를 지닌다. 아래는 코드 예시이다.function bu..
[알고리즘] 유클리드 호제법 유클리드 알고리즘은 2개의 수의 최대공약수를 구하는 알고리즘의 일종이다. 호제법이란 두 수를 나누어가며 원하는 값을 얻는 알고리즘을 의미한다.최대공약수 (GCD, Greatest Common Divider)최대공약수는 두 자연수가 공통으로 갖는 약수중에서 가장 큰 값을 의미한다. 최대공약수를 구하는 코드는 다음과 같다 (자바스크립트) function GCD(n, m){ if(n % m === 0){ return m; } return GCD(m, n % m);}// 반복문 버전function GCD(n, m) { while (m !== 0) { let temp = m; m = n % m; n = temp; } return n..