2013. 11. 14. 22:31ㆍBASIC/알고리즘
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 |