입력되는 데이터의 증가에 따른 성능의 변화를 의미
: 어떤 알고리즘에 n개의 데이터가 들어갔을 때 n개 대비 얼마나 많은 연산을 수행하는가
int func1(int[] n){
if(n.length <3 )
return 0;
int a = n[0];
a += n[1];
a += n[2];
return a;
}
n개의 배열이 존재한다
배열이 1개여도, 100개여도 수행할, 처리해야할 연산의 양은 고정되어있으므로 O(1)로 표기
int sum(int[] n){
int s = 0;
for(int i : n) {
s += 1;
}
return s;
}
배열이 n개일 경우 수행해야할 반복문도 동일하게 수행되어야 하므로, O(n)로 표기
void bubbleSort(int[] n){
for (int i=0; i<n.length; i++){
for (int j=0; j<n.length; j++){
if(n[i] < n[j]) {
int temp = n[i];
n[j]= n[i];
n[i] = temp;
}
}
}
}
n이 증가할수록 수행되는 연산의 횟수도 증가하고 있으므로 O(n^2)로 표기
int sum(int[] n){
int sum = 0;
int max = n.length;
while (max > 0) {
sim += n[max-1];
max /= 2;
}
return sum;
}
n을 넣으면, max 변수에 n이 포함되어있는 걸 확인되는데, max 변수는 연산을 실행할수록 줄어들고 있다.
동작을 하면 할수록 취급하는 범위가 점점 절반씩 줄어들고 있기 때문에 O(logn)로 표기 !