알고리즘의 기초 & 유클리드 호제법

2013. 11. 14. 22:31BASIC/알고리즘


v 연구 분야는 알고리즘의 고안, 알고리즘의 검증, 알고리즘 분석, 프로그램 테스트가  있습니다.

v 프로그램은 유한성(finiteness)을 만족시키지 않을수도 있습니다.

v 알고리즘을 표현하는 방법은 자연어(Natural Language), 순서도(Flow Chart), 프로그래밍 언어(Programming Language), 의사코드(Pseudo Code)가 있습니다.

v 정형화된 알고리즘 비교 분석 방법에는 경험적 분석(Empirical analysis)과 수학적 분석(Mathmatical analysis)이 있습니다.

v 알고리즘의 성능을 정형적으로 표현하는 가장 일반적인 방법은 O-표기법 (big-Oh notation)입니다.


유클리드 호제법


유클리드 호제법(- 互除法, Euclidean algorithm)은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. 이는 명시적으로 기술된 가장 오래된 알고리즘으로서도 알려져 있으며, 기원전 300년경에 쓰인 유클리드의 《원론》 제7권, 명제 1부터 3까지에 해당한다.

http://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95


 public static int gcd(int p, int q) {
        if (q == 0) return p;
        return gcd(q, p%q);
 }




'BASIC > 알고리즘' 카테고리의 다른 글

Charles Antony Richard Hoare & Quick Sort  (0) 2016.01.01
Quick Sort  (1) 2014.09.02
정렬 알고리즘  (0) 2013.11.24
재귀호출 & 프랙탈  (0) 2013.11.24
자료구조의 기초 2  (0) 2013.11.24
자료구조의 기초 1  (0) 2013.11.24
1. 알고리즘의 소개  (0) 2013.11.03