본문 바로가기
컴퓨터

알고리즘 뜻 알고리즘이 보인다.

by 즈칸루하 2015. 7. 30.

알고리즘(algorithm)

위키백과사전 - 알고리즘이란 어떤 문제를 해결하기위한 여러 동작들의 모임

 

정의가 쉽지 않네요.

처음 C언어와 비주얼베이직을 배울 때 알고리즘에 대해서 배웠는데. 글쎄요

정의에 대해서는 별로 생각하지 않고 추상적인 개념만 탑재한 상태라 막상 정의를 내리라고하니 무척 난감했습니다.

위키백과사전을 보기 전에 알고리즘의 정의에 대한 제 생각은 "어떤 일을 하기위한 일련의 과정" 정도로 생각했었습니다만

제 생각이 틀렸네요. 

알고리즘 뜻

 

다시한번 정리를 하면

알고리즘 뜻은 "어떤 문제를 해결하기 위한 여러 동작들의 모임" 입니다.

1. 문제해결을 위한

2. 여러동작들의 모임

이렇게 나누어 볼 수 있다는 겁니다. 기억하기 더 쉽겠죠.

 

알고리즘의 정의는 알겠는데, 이 알고리즘이 되기 위한 조건이 있다고 합니다.

알고리즘의 조건

입력, 출력, 명확성, 유한성(종결성), 효율성

입력 - 외부에서 제공되는 자료가 0개 이상

출력 - 최소 2개 이상의 결과 도출 ( 입력에 하나의 출력이 나오면 안됩니다 )

명확성 - 수행 과정이 모호해서는 안된다.

유한성(종결성) - 유한 번의 수행 후 종료되어야한다.(유한시간 내)

효율성 - 수행 과정이 명백하게 실행 가능해야 한다.

 

알고리즘의 분석기준

정확성, 작업량, 기억장소 사용량, 최적성, 복잡도

정확성 - 입력량에 대해 유한 시간 내에 얼마나 올바른 답을 도출해내는 가에 대한 판단

작업량 - 전체 알고리즘 중에서 가장 중요한 연산들만으로 작업량을 측정한다.

최적성 - 위의 더 적은 중요 연산만으로 수행 가능한가?

복잡도 - 복잡도의 기준은 소모시간, 메모리 사용량에 사용되는 자원을 말한다.

 

복잡도에 대해서 조금 더 할애하면,

위 복잡도에서 전자를 시간 복잡도, 후자를 공간 복잡도라고 합니다.

복잡도를 표기하는 표기법이 있는데 보통 점근 표기법을 많이 사용합니다.

점근 표기법은 알고리즘의 복잡도를 단순화 하거나 무한 급수의 뒷부분을 간소화 하여 표기하는 것입니다.

 

대표적인 표기법이 O자표기법입니다. - 빅오 표기법이라고도 합니다.

O(1), O(log N), O(N), O(N log N), O(N2승), O(N3승), O(2N승), O(n!)

 

알고리즘과 그 속에 용어들에 대해서 간략하게 알아보았습니다.

뭐든지 정의를 내리고 이를 활용하는 것은 어려운 일이군요. 그래도 뭔가를 배우고 제대로 활용하려면

정확한 용어와 정의는 필수입니다.

 

댓글