본문 바로가기
알고리즘

알고리즘 성능 평가

by 태풍사랑 2021. 7. 19.

빅오 표기법(Big-O Notation)

  • 가장 빠르게 증가하는 항만을 고려하는 표기법
  • 함수의 상한만을 나타내게 됨
  • ex)3n^3+5n^2+1,000,000인 알고리즘 -> O(N^3)차수가 가장 큰 항만을 남기기 때문에
순위 명칭
O(1) 상수시간
O(logN) 로그시간
O(N) 선형시간
O(NlogN) 로그 선형 시간
O(N^2) 이차시간
O(N^3) 삼차시간
O(2^N) 지수시간

상수 시간으로 갈 수록 좋음

 

요구사항에 따라 적절한 알고리즘 설계

  • 문제에서 시간제한(수행시간 요구사항)을 가장 먼저 확인
  • 시간제한이 1초인 문제일때,
  1. N의 범위가 500인 경우 -> 시간 복잡도가 O(N^3)인 알고리즘 설계
  2. N의 범위가 2,000인 경우 -> 시간 복잡도가 O(N^2)인 알고리즘 설계
  3. N의 범위가 100,000인 경우 -> 시간 복잡도가 O(NlogN)인 알고리즘 설계
  4. N의 범위가 10,000,000인 경우 -> 시간 복잡도가 O(N)인 알고리즘 설계

 

 

'알고리즘' 카테고리의 다른 글

그리디 알고리즘  (0) 2021.07.21
[Java] 백준 1026번 보물  (0) 2020.05.20
[Java] 백준 1890번 점프  (0) 2020.05.19
유클리드 호제법  (0) 2020.05.17
[Java] 백준 2609번 최대공약수와 최소공배수  (0) 2020.05.17

댓글