Big-O 표기법
함수 값을 결정하는 최고차항만으로 간단하게 표기
알고리즘의 수행시간 : 최악의 경우의 입력에 대한 기본연산 횟수
T(n)=2n-1
T(n)=4n-1
T(n)=n(n-1)/2*3+1
Algorithm 1
은 Algorithm 2
보다 2배 빠르다.
Algorithm 3
은 n<5/3 일 때 Algorithm 2
보다 빠르고 모든 n에 대해서 Algorithm 1
보다 느리다
Algorithm 1
과 Algorithm 2
는 n에 대해 선형적으로 증가한다.(최고차항 n)
->n에 대하여 정비례하게 증가
Algorithm 3
은 제곱으로 증가한다.(최고차항 n2)
->n에 대하여 기하급수적으로 증가
T(n)=2n-1
-> O(n)T(n)=4n-1
-> O(n)T(n)=n(n-1)/2*3+1
-> O(n2)T(n)=1
def increment_one(a):
return a+1 #상수
O(n0)=O(1)
def number_of_bits(n):
count=0
while n>0:
n=n//2
count += 1
return count
O(log2n)