시간복잡도

SJW·2023년 1월 25일
post-thumbnail
  • 시간복잡도(Time Complexity)란?
    컴퓨터 프로그램의 입력값과 연산 수행 시간의 상관관계를 나타내는 척도이다.
    (효율성에 중점을 두고 생각하는 느낌이다.)

시간 복잡도를 표기하는 방법은 주로 Big-O 표기법을 따른다
(빅오 표기법은 시간 복잡도 최악의 경우를 고려한다.)

Big-O 표기법의 종류

  • O(1)
    입력 데이터와 상관없이 일정하게 증가하는 알고리즘 시간과 요소와 일정하게 증가함.
    O(1)는 constant complexity라고 하며, 입력값이 증가하더라도 시간이 늘어나지 않는다.

  • O(n)
    linear complexity라고 부르며, 입력값이 증가함에 따라 시간 또한 같은 비율로 증가하는 것을 의미한다.

ex)O(n)=O(2n) 같은 의미이다.

  • O(log n)
    가장 대표적인 알고리즘으로는 이진 검색법이 있다.(binary search)
  • O(n^2)
    입력값이 증가함에 따라 실행시간이 n의 제곱만큼 계속 늘어난다.

    O(n^2)=O(3n^2) 같은 의미이다.
  • O(2^n)
    Big-O 표기법 중 가장 느린 시간 복잡도를 가집니다.

0개의 댓글