U E D R , A S I H C RSS

Data Structure/Foundation



1. ���� ����

  • ������ ���� �� ������; ������ 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  ���� ��������.

  • ���� ���� �� ����.. ���� ���� �� ��������. ���� �� ����합����.
    • �������� 함����하�� �� �������� Overhead����, ������ ���� �� 함����택�� 해�������� �������� ������, n �� ���� ���� ���� ������ ���� ����하�� ������. 하��, ������ 표��� �� ������ 표��� �� ���� ����할 �� ��������. ���� ��해������.

1.1. ���� ��형

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:05
Processing time 0.0130 sec