-
알고리즘3
알고리즘의 효율 측정 첫 글에서 알고리즘은 문제를 해결하는 것이라 했다. 종이에 문제를 푼다고 가정해보자. 1분이 걸려 푸는 것이 좋은가, 100분이 걸려 푸는 것이 좋은가? 1장의 종이를 쓰는 것이 좋은가, 100장의 종이를 쓰는 것이 좋은가? 알고리즘도 비슷한 맥락이다. 적은 시간, 적은 자원을 사용하는 알고리즘을 일반적으로 효율적인 알고리즘이라 한다. 시간 복잡도 시간 복잡도는 실행시간이란 관점에서 알고리즘의 효율을 표기하는 방법을 말한다. 보통 최선의 경우, 최악의 경우, 평균 세 가지를 나타낸다. 빅오표기법 빅오 표기법은 최악의 경우를 나타낸다. 다음은 n을...
-
알고리즘2
서론 지난 글에서는 알고리즘의 어원, 개념, 특성에 대해 알아보았다. 알고리즘의 개념을 알았으니, 유명한 알고리즘들을 살펴보도록하자. 여러 알고리즘을 살펴보려면, 알고리즘을 ‘볼 수 있고’ 비교할 수 있어야하지 않겠는가? 그러니 우선 알고리즘의 표현 방법을 알아보려 한다. 알고리즘의 표현방법 알고리즘은 자연어, 프로그래밍 언어, 의사코드, 순서도 등의 방법으로 나타낼 수 있다. 하나씩 알아보자. 1. 자연어 우리가 일상에서 사용하는 모든 언어는 자연어이다. 영어, 한국어, 중국어 모두 자연어에 속한다. 우리가 평소 사용하는 언어이기 때문에 표현하고 이해하기 쉬울 수 있지만, 컴퓨터에게는 쉽지 않은...
-
알고리즘1
「알고리즘」 정보를 공부하다 다들 한 번쯤은 들어봤을 말이다. 익숙한 말이기에 쉽게 느껴질지 모른다. 그런데 알고리즘의 정의를 설명할 수 있는 사람은 몇이나 있을까? 다양한 알고리즘들을 소개하기에 앞서 ‘알고리즘’ 자체를 설명해보려 한다. 알고리즘의 어원 ‘Algorithm’이라는 단어를 보면 어떤 생각이 드는가? logarithm, rhythm, fascism 등의 단어들이 연상되리라 예상된다. 특히 어미 ‘-ism’을 떠올리는 사람이 많을 것으로 생각된다. 그 뜻을 사전에서 가져오면 다음과 같다. 명사나 형용사의 뒤에 붙여 그것을 내세우거나 따르는 주의 또는 주장이라는 뜻을 더해 주는 접미사. 위키낱말백과[1] 그럴듯해...