본문 바로가기
Algorithm

알고리즘이란

by Coding_mon 2020. 9. 10.

알고리즘이라는 이름은 페르시아 수학자인 '알콰리즈미'로부터 유래 되었다고 한다. 이건 별로 기억할 필요는 없고

여러 의미를 가지고 있는것 같은데 

내가 생각하는 알고리즘은 문제를 해결하는 단계적인 절차, 또는 방법이라고 생각한다.

여기서 문제를 해결하기 위한 도구는 컴퓨터이며 여기서 입력이 주어지며

알고리즘을 통해 결과를 출력 받는다.

 

알고리즘의 특성으로는

1. 정확성

> 알고리즘은 주어진 입력에 대하여 올바른 정답만을 도출해 내어야 하며 오답을 뱉을시 이는 알고리즘이라고 할 수 없다.

 

2. 수행성

> 알고리즘의 각 단계는 코드는 컴파일러에 의하여 기계어로 번역이 가능하며 수행이 되어야 한다.

 즉 컴퓨터가 알아먹을 수 있는 언어로 작성되어야 한다는 말이다.

 

3. 유한성

>  알고리즘은 일정한 시간내에서 종료되어야 한다.

무한 루프 (loop)에 빠지거나 최악의 시간복잡도 O(n^2), O(2^n)을 가지는 경우 현실적으로 정답을 얻기가 어려우며

알고리즘으로서의 가치를 잃게 된다.

 

4. 효율성

> 알고리즘은 항상 시간적, 공간적인 효율성 지녀야 한다 이러한 이유는 입력되는 데이터의 양이 많을 수록

가치를 볼 수 있기 때문이다. 효율성에서는 메모리의 공간등이 포함된다. 

댓글