Big-O
빅오표기법
Last updated
빅오표기법
Last updated
알고리즘의 성능을 수학적으로 표현해주는 표기법이다.
알고리즘의 시간과 공간 복잡도를 표현할 수 있다.
알고리즘의 실제 러닝타임을 표시하는 것이라기보다는 데이터나 사용자의 증가율에 따른 알고리즘의 성능을 예측하는 것이 목표
상수와 같은 숫자들은 모두 1로 간주된다.
입력 데이터의 크기에 상관없이 언제나 일정한 시간이 걸리는 알고리즘을 말한다.
예) 입력값에 상관없이 특정 수를 반환하는 알고리즘
입력데이터의 크기에 비례하여 수행되는 알고리즘
예를 들면, 배열의 길이만큼 순회하는 로직
n을 중복해서 돌리는 것
데이터가 커질수록 처리 시간의 부담도 늘어나게 된다.
n번 반복하면서 매번 m번 반복하는 구조
n^3보다도 많은 시간복잡도를 자랑한다.
대표적인 예 : 피보나치
한번 연산할 때마다 연산해야할 데이터가 절반씩 줄어드는 알고리즘의 시간복잡도
대표적인 예) binary search
시간이 지날수록, 데이터가 늘어날수록 속도에 큰 변화가 없다.
증가하지 않는 숫자는 신경쓰지 않겠다.