- ��������� ��������� ������ ���������
; ������������ recursive��� ������ ���������.(������ ������);
- 함������ ���합��� ��������������, ��������� 표����������� ������. - Ο, Ω, θ
- Ο(f(n)) : f(n)��� ������������ ���하��� ������ ��������� 포함하��� ���합
- Ω(f(n)) : f(n)��� ������������ ��������� ������ ��������� 포함하��� ���합
- θ(f(n)) : ��������� ������하���, ������항��� ���확하��� f(n)��� ������ 함��������� ���합
~cpp
θ(f(x)) = Ο(f(x)) ∩Ω(f(x))
ex)
1. g(n) ∈ Ο(f(n)) ⇔ f(n) ∈ Ω(g(n))
- g(n)��� f(n) ���하������.
2. g(n) ∈ θ(f(n)) ⇔ f(n) ∈ θ(f(n))
- g(n)��� f(n)��� ������������ ������.
3. a,b > 1 ��� ���해���
log n ∈ θ(log n)
a b
∵ log n = log n / log a = 1/log a * log n
a b b b b
- log 함������ base��� ������������ ������ ������������.
4. b > a > 0
- a^n ∈ Ο(b^n)
- a^n not∈ θ(b^n)
5. a^n ? n!
- a^n ∈ Ο(n!)
- a^n not∈ θ(n!)
cf. log n < n < n*log n < n^2 < ... < n^100 < 2^n < 3^n < n!
��������� ��������� - ������������ ���트������ ������ --���������
- ��������� ������������ ��������� ������������������. ������횟������ ������������ ���������... ~��� ������한��������� ���������.. ������ ������ ������횟������ n+3 ������������������ O(n)��������� ������ ���������..���������?--;
- ��������� ���해하��� ���한 ������
~cpp
// x��� n������ ���하��� 함���.
double lalala(double x, int n)
{
double y=1.0;
while(n--) y *= x;
return y;
}
- ��� 함������ ���행��������� ���하��� O(n)��� ������. ������? ��� 함������ ���행��������� ������하��� ��������� while���������������. while��������� n��� ��������� O(n)��� ������ ���...(������?--;) ���������! ��� 함��������� ��������� ������하������ 효������ ������ 함������ ��������� ������.
~cpp
// x��� n������ ���하��� ��������� 함���
double lalala2(double x, int n)
{
double temp=1.0;
if(n == 0) return 1.0;
if(n == 1) return x;
if(n%2) /* n��� ����������� */ // ������ 호������ ������������.
{
temp = lalala2(x, n/2);
return temp*temp*x;
}
else /* n��� ������������ */
{
temp = lalala2(x, n/2);
return temp*temp;
}
}
- ��� 함������ ���행��������� ���하��� O(log2n)��� ������! ������학��� ��� ������ ������ ���하��� n>log2n ��������� ���������..--;(log������ ������ 2��� ������������.)
- ��� ������������ ������ ��� ��������� ������ ��������� 하��� 함��������� 효��������� ������ ��������� ��������� ���������..
; ���������..;
- O(log2n)������ ��� ��������� ��������� ��������� ��������� ���해.. ������������ ��������� 하������������.
~cpp
��������� x^2n=(x^n)^2, x^(2n+1)=(x^n)^2 * x ��������� ������ ���������?
n=1 : f(1)=0
n=2 : f(2)=1
n=4 : f(4)=f(2)+1=2
n=8 : f(8)=f(4)+1=3
...
n=2^k : f(2^k)=k
������������ log2k ��� ������ ������������.