Post

알고리즘의 성능 분석

알고리즘 성능 분석 기준



알고리즘 성능을 분석하는 판단 기준에는 정확성, 명확성, 수행량, 메모리 사용량, 최적성 등이 있음.

  • 정확성
    • 올바른 자료가 입력되었을 때 유한한 시간 내에 올바른 결과를 출력할수 있는지
  • 명확성
    • 알고리즘이 얼마나 이해하기 쉽고 명확하게 작성되었는지
  • 수행량
    • 기본적으로 포함되는 연산 제외, 알고리즘의 특성을 나타내는 중요 연산을 모두 분석
  • 최적성
    • 가장 중요, 알고리즘을 적용할 시스템의 사용 환경과 중요 요구사항이 모두 다르기 때문에 ‘가장 좋은’ 알고리즘이란 조건에 맞는 ‘최적의’ 알고리즘이라 할 수 있음.






알고리즘 성능 분석 방법



  • 공간 복잡도 (Space Complexity)
    • 알고리즘을 프로그램으로 실행하여 완료하는 데까지 필요한 총 저장 공간
    • 필요한 고정 공간 + 가변 공간


  • 시간 복잡도 (Time Complexity)
    • 컴파일 시간은 제외, 명령문의 실행 빈도수를 계산하여 측정.
    • 시간 복잡도는 각 알고리즘을 서로 비교하기 위한 것으로 실행 빈도수를 구하여 사용.






알고리즘 성능 분석 표기법

1. Big-Oh (빅-오)




빅-오 표기법은 함수의 상한을 나타내기 위한 표기법.

최악의 경우에도 g(n)의 수행 시간 안에는 알고리즘 수행이 완료된다는 것을 보장함.



2. Big-Omega (빅-오메가)




빅-오메가는 함수의 하한을 나타내기 위한 표기법.

알고리즘 수행에는 적어도 g(n)의 수행 시간이 필요함을 의미함.

일반적으로 최악의 경우를 고려한 해결책을 찾기 때문에 빅-오 표기법을 주로 사용.



3. Big-Theta (빅-세타)




빅-세타는 상한과 하한이 같은 정확한 차수를 표현하기 위한 표기법

즉, f(n)=heta(g(n)) 이려면 f(n)=O(g(n)) 이면서 f(n)=Omega(g(n)) 이어야 함.

시간 복잡도를 정확히 계산할 수 있다면 빅-세타 표기법 사용.






This post is licensed under CC BY 4.0 by the author.