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 메모리를 많 게 됩다. 만, 그대로 다. 드가 다.

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