피보나치 수열 교체와 귀속 대비

5025 단어
피보나치 수열 교체 방법과 귀속 알고리즘 비교
1. 귀속 알고리즘
  int recursion(int n)
        {
            if (n < 2)
                return n;
            else
            {
                return recursion(n - 1) + recursion(n - 2);
            }
        }

2. 귀속 알고리즘(정적 방법)
  static int recursionS(int n)
        {
            if (n < 2)
                return n;
            else
            {
                return recursionS(n - 1) + recursionS(n - 2);
            }
        }

3. 교체 알고리즘
 int Iteration(int n)
        {
            int a1, a2, a3;
            if (n < 2)
                return n;
            a1 = a2 = a3 = 1;
            while (n > 2)
            {
                n--;
                a3 = a1 + a2;
                a1 = a2;
                a2 = a3;

            }
            return a3;
        }

4. 호출
            Stopwatch sw1 = new Stopwatch();
            sw1.Start();
            int i = Iteration(40);
            sw1.Stop();
            Response.Write(string.Format("{1} :{0}
", sw1.Elapsed, i)); Stopwatch sw = new Stopwatch(); sw.Start(); int r= recursion(40); sw.Stop(); Response.Write(string.Format("{1} :{0}", sw.Elapsed, r)); Response.Write("
"); Stopwatch sw2 = new Stopwatch(); sw2.Start(); int r1 = recursionS(40); sw2.Stop(); Response.Write(string.Format("{1} ( ):{0}", sw2.Elapsed, r1)); Response.Write("
");

5. 결과
102334155 교체 시간: 00:00.0001703102334155 귀속 시간: 00:00:06.5017408102334155 귀속 시간(정태):00:00:00:06.2556308
 
다음으로 전송:https://www.cnblogs.com/lecone/archive/2013/01/11/Fibonacci-Sequence-recursion-Iteration-comparison.html

좋은 웹페이지 즐겨찾기