Download - 점근적 복잡도 분석
점근적 복잡도 분석[DevRookie] 꽝매니아
차 례
알고리즘 성능에 대하여 알고리즘 수행시간의 분석 점근 표기법 Big-O 표기법 Big-Omega 표기법 Big-Theta 표기법 Small-o 표기법 Small-Omega 표기법 마스터 정리
알고리즘의 성능에 대하여
어떻게 해결할 것인가 ? 해결할 수 있는 다양한 방법들이 존재한다 . 어떤 방법을 통해 해결해야 더 빠르고
정확하게 알 수 있을까 ? 정확성 : 정확하게 동작하는가 ? 작업량 : 얼마나 적은 연산 ?메모리 사용량 : 얼마나 적은 사용 공간 ? 단순성 : 단순한 정도 ? 최적성 : 더 이상 개선할 여지가 없는 만큼 ?
알고리즘 수행시간의 분석
물리적 측정 방법으로는 성능비교하기 어렵다 . 계산 성능에 관계없이 명확하게 정의할 수
있음을 바탕으로 비교 , 예측 최악의 경우 평균의 경우최선의 경우
점근적 표기법
점근적 : 점점 가까워 지다 .
소규모 횟수로는 극명한 차이를 나타내지 못한다 .
값이 클수록 큰 차이를 보여준다 .
증가율에 따라 변화되는 양을 표기
알고리즘 수행시간에 대한 복잡도 계산
Big-O 표기법
이보다 더 나쁠수는 없다 !( 점근적 상한 )
최악의 수행시간이 될 수 있는 가능성 판단
주로 사용되는 표기법
Big-Omega 표기법
이보다 더 좋을 순 없다 !( 점근적 하한 )
Big-theta 표기법
O(g(n)) 과 Omega(g(n)) 을 동시에 성립하는 모든 함수의 집합
Small-o 표기법
함수의 증가율이 점근적 의미에서 ‘더 작다’ 여유있는 상한
Small-Omega 표기법
함수의 증가율이 점근적 의미에서 ‘더 작다’ 여유있는 하한
마스터 정리
특정 형태의 재귀식에 대해 복잡도 결과를 간단하게 계산할 수 있는 방법
해당 유형에 맞는 점화식으로 정리 내용이 복잡한 관계로 교제 내용 참고 .
결론 .
알고리즘 선택을 위해 필요한 기반 지식
복잡한 정도의 근사치를 구해 본다 .
왜 Big-O 표기법을 자주 사용하는가 ?