'The Art of Computer Programming'에 해당하는 글 2건

http://seo.seocompany.ca/google-algorithm-exposed/

출처: http://seo.seocompany.ca/google-algorithm-exposed/



Algorithm은 반드시 확신할 수 있어야 하며, Algorithm의 작동 방식을 배우는 가장 좋은 방법은 실제로 수행하여 보는 것이다.

Algorithm의 현대적인 의미는 조리법, 공정, 방법, 기법, 절차, 루틴 등과 상당히 비슷하다.
다만 Algorithm은 5가지 주요한 특징을 가진다.

1. 유한성(finiteness)
Algorithm은 여러 단계들을 수행한 후 유한한 횟수 후 반드시 종료되어야 한다. 이러한 유한성이 만족되어야 Algorithm으로 인정받을 수 있다.

2. 명확성(definiteness)
Algorithm의 각 단계는 반드시 명확하게 정의되어야 한다. 수행할 행동은 모든 경우에 대하여 모호함 없이 엄격하게 명시해야 한다.

Algorithm은 컴퓨터도 따라할 수 있을 정도로 명확하여야 한다.

출처: The Art of Computer Programming

3. 입력(input)
Algorithm은 0 또는 그 이상의 입력들을 가진다. 여기서 입력이라 함은 Algorithm이 시작되기 전에 Algorithm에 제공되거나, Algorithm 수행 중에 동적으로 주어진 수량들을 말한다.

4. 출력(output)
Algorithm은 1개 이상의 출력들을 가진다. 출력은 입력과 특정한 관계를 가지는 수량이다.

5. 효과성(effectiveness)
일반적으로 Algorithm은 효과적(effective)이어야 한다고 간주된다. 여기서 효과적이라는 말은, 이론적으로는 Algorithm의 모든 연산들이 종이와 연필을 이용하여 유한한 시간안에 정확하게 수행할 수 있을 정도로 충분히 단순해야 한다는 차원의 이야기이다.


현실적으로 우리가 원하는 것은 그냥 Algorithm이 아니라 다소 느슨한 미학적인 정의를 가진 좋은 Algorithm이다. 여기서 좋은 Algorithm에 대한 한가지 조건은 Algorithm의 수행시간이다. 이 수행시간은 각 단계의 수행 횟수로 표현할 수 있다. 또 다른 조건들로는 다양한 종류의 컴퓨터들에 대한 적응성이나 Algorithm의 단순성, 우아성 등을 들 수 있다.

계산적 방법을 컴퓨터 언어로 표현한 것을 프로그램이라고 한다.

출처: The Art of Computer Programming

'Architecture for Software > Algorithm' 카테고리의 다른 글

최대 공약수 구하기  (0) 2009.11.09
RLE(Run-Length Encoding) 알고리즘  (2) 2009.11.09
Top Coder에 도전하세요!  (4) 2009.01.01
Algorithm 이란  (0) 2008.11.17
The 3n+1 Problem  (3) 2008.11.11
스택(Stack)  (0) 2008.10.08

WRITTEN BY
jangsunjin
전세계 사람들의 삶의 질을 높일 수 있는 소프트웨어를 만들어 함께 나누는 것이 꿈입니다. 이 세상 그 무엇보다 사람이 가장 소중합니다.

받은 트랙백이 없고 , 댓글이 없습니다.
secret


드디어 The art of computer programming 1: 기초 알고리즘을 구입했습니다.

약 2주동안 류광님의 번역서를 살 것인가? 아니면 원서를 살 것인가에서 많은 고민을 하였습니다.
하지만 원서를 보는 것보다 류광님의 번역서를 보는 것이 기초 알고리즘을 이해하는데 더욱 나을 것이라는 결론을 내렸습니다.


깔끔한 원서가 아직도 탐이 납니다. ;-)


그리고 원서 전부를 살것인가? 아니면 한권씩 살것인가에서 망설였습니다만, 책장을 멋지게 꾸미는데는 원서 전부가 훨씬 나아보일지는 모르지만, 이 엄청난 책  한권 한권 보는데 시간이 많이 걸린다는 것을 알고 있으므로 한권만 샀습니다.


꿰나 멋있어 보입니다. :-)

수학이 약해서 큰일입니다만 오늘부터 책읽는 즐거움이 더욱 늘어날듯 합니다.

WRITTEN BY
jangsunjin
전세계 사람들의 삶의 질을 높일 수 있는 소프트웨어를 만들어 함께 나누는 것이 꿈입니다. 이 세상 그 무엇보다 사람이 가장 소중합니다.

받은 트랙백이 없고 , 댓글이 없습니다.
secret