10/16

학교/소프트웨어공학 2012. 10. 16. 11:29

 

recursion vs nonrecursion

 

 

recursion

 

rule1: fib(1)=0

rule2: fib(2)=1

rule3: fib(n)=fib(n-1)+fib(n-2)

 

main(){

fib(50);

}

 

prob: redundancy  ,  n-1과 n-2 양쪽에서 중복된 계산 발생

 norecursion:

fib(n)=tmp1=0

temp2=1;

for i=3 to n

tmp = tmp1+tmp2

tmp1=tmp2;

tmp2=tmp

 

prob1: lengthy code , 피보나치 규칙이 명확히 안보인다.

 

 

최종판

rule1: fib[1]=0

rule2: fib[2]=1

rule3: fib[n]=fib[n-1]+fib[n-2]

rule4: fib[3]=2

 

main()

{

for i=3 to n

fib[n]=fib[i-1]+fib[n-2]

}

 

choice or,and sequential or,and

 

'학교 > 소프트웨어공학' 카테고리의 다른 글

  (0) 2012.11.06
  (0) 2012.10.30
10/9  (0) 2012.10.09
  (0) 2012.09.18
소프트웨어공학  (0) 2012.09.11