프로그래밍에서 성능은 가장 중요한 측면 중 하나입니다. 프로그램의 성능을 측정하는 여러가지 관점이 있지만, 우리는 시간 복잡도와 공간 복잡도 측면에서 알고리즘의 성능을 분석해 볼 것입니다.
시간 복잡도의 경우에는 알고리즘의 수행시간을 기준으로 성능을 분석 합니다. 즉 같은 작업을 할 때에 내가 원하는 결과값을 얻는데 까지 걸리는 시간이 짧다면, 시간 복잡도가 낮다고 할 수 있습니다.
공간 복잡도의 경우에는 알고리즘이 수행되는 동안 필요한 메모리의 양을 측정 합니다. 해당 알고리즘을 수행 할 때에, 더 적은 메모리를 사용한다면, 공간 복잡도가 낮다고 할 수 있습니다.
예를 들어, 자율주행 알고리즘의 경우 시간복잡도가 중요 합니다. 앞차와의 간격이나, 길의 상태를 빠르게 파악하고 차가 어떻게 운행될지 실시간으로 판단해야 하기 때문입니다.
또 다른 예는 유전자 데이터를 가지고 분석을 하는 프로젝트 입니다. 이 경우 방대한 데이터 양을 처리해야 하기 때문에 최대한 공간 복잡도를 낮추는 게 ...
#
빅오
#
알고리즘
#
프로그래밍
원문 링크 : 알고리즘 효율 분석 - 빅오 표기법