컴퓨터 과학(Computer Science) 에서 알고리즘은 어떠한 문제를 해결하기 위한 방법이고, 어떠한 문제를 해결 하기 위한 방법은 다양하기 때문에 방법(알고리즘) 간에 효율성을 비교하기 위해 빅오(big-O) 표기법을 보통 가장 많이 사용한다.
알고리즘의 효율성은 데이터 개수(n)가 주어졌을 때 덧셈, 뺄셈, 곱셈 같은 기본 연산의 횟수를 의미한다. 빅오 표기법은 보통 알고리즘의 시간 복잡도와 공간 복잡도를 나타내는데 주로 사용 된다. (시간 복잡도는 알고리즘의 시간 효율성을 의미하고, 공간 복잡도는 알고리즘의 공간(메모리) 효율성을 의미한다.)
출처: https://noahlogs.tistory.com/27 [인생의 로그캣]
예시1: O(1)
F(int[] n) {
return (n[0] == 0)? true:false;
}
예시2: O(n)
F(int[] n) {
for i = 0 to n.length
print i
}
예시3: O(n^2)
F(int[] n) {
for i = 0 to n.length
for j = 0 to n.length
print i + j;
}
예시: O(nm)
F(int[] n, int[] m) {
for i = 0 to n.length
for j = 0 to m.length
print i + j;
}