본문 바로가기

아이티/알고리즘

알고리즘 이란?

 

 과학을 공부하는 목적은 무엇일까? 특히 Mathematical Science의 궁극적인 목적은 무엇일까?

우리가 세계에서 겪는 현상들을 일일이 다 실험을 해서 알아보기는 힘들것이다.

그러므로 우리는 예측을 해야 한다. 예를 들어, 시속 몇km로 달려서 교통사고가 났을때 사람이 죽는가?

같은 문제는 일일이 실험을 할 수 없다. 수학과 통계적인 방법을 사용하여 예측하여야 하는 것이다.

마찬가지로, Computer Science에도 예측이 필요하다. 어떤 데이터를 가져와 프로그램을 실행했을때 결과가 어떻게 나올 것인가? 메모리는 얼마나 필요한가? 시간은 얼마나 걸리는가? 를 미리 알기 위한 예측이 필요하다.

이때 도움이 되는 과목이 알고리즘이다.

 

 알고리즘은 여러가지가 있지만. 이 블로그에서 주로 포스팅 될 알고리즘은 컴퓨터 알고리즘이다. 알고리즘은 문제를 해결하기 위한 절차다. 이때, 알고리즘은 세 가지 특성을 가진다. 유한(finite), 결정적(deterministic), 효율(efficiency).

이 세가지 특성 중 특히 중요한 특성이 finite과 deterministic이다. 첫 번째로 finite한 특성은 알고리즘은 반드시 종료되어야 한다는 특성을 가진다. 절차가 종료되지 않고 무한히 순환한다면 그것은 알고리즘이라 할 수 없다. 두 번째로 deterministic한 특성을 가져야 한다. 언제 어디서 누가 이 프로그램을 실행하던 똑같은 결과를 도출해야 한다. 세 번째 efficiency특징은 finite하고 deterministic한 알고리즘이 여러 개 있으면 가능하면 효율적인 알고리즘을 사용하는 것이 좋을 것이다.

'아이티 > 알고리즘' 카테고리의 다른 글

몰빵  (0) 2020.03.30
정거장 통로  (0) 2020.03.23
우주 정거장  (0) 2020.03.16
카드  (0) 2020.03.02