HolaJun

35 object(s)
 

빅오표기법

빅 오(Bit-O) 표기법

O(1)

입력 데이터의 크기에 상관 없이 언제나 일정한 시간이 걸리는 알고리즘

사진

code

F(int[] a) {
    return (a[0]==0)? true: false
}

O(n)

입력 데이터의 크기에 비례해서 처리시간이 증가하는 알고리즘

code

F(int[] a) {
    for i = 0 to n.length
    	print i
}

O(n²)

입력한 데이터 n의 제곱만큼 처리 시간이 증가하는 알고리즘

code

F(int[] a) {
    for i = 0 to n.length
    	for j = 0 to n.length
    		print i + j;
}

O(N³)

데이터에 양에 비해 3제곱만큼 시간이 증가하는 알고리즘

F(int[] n) {
    for i = 0 to n.length
    	for j = 0 to n.length
    		for k = 0 to n.length
    			print i + j + k;
}

O(log n)

문제를 해결하는데 필요한 단계들이 연산마다 특정 요인에 의해 줄어듬.

F(k, arr, s, e) {
    if(s>e) return -1;
    m = (s + e) / 2;
    if(arr[m] == k) return F(k, arr, s, m-1);
    else return F(k, arr, m+1, e);
}

예제

int sum(int N) {
    return N * N;
}
int sum2(int N) {
	sum = 0;
	
	for(int i=1; i<=N; i++) {
        sum = sum + N;
	}
	
	return sum;
}