Data structures/Chapter 2. Recursion

피보나치 수열 피보나치 수열의 경우에는 순환 호출을 사용하면 비효율적인 예시이다. 피보나치 수열은 다음과 같이 공식으로 표현한다. 구현과 성능 순환 호출과 반복문을 각각 활용하여 피보나치 수열의 값을 계산하는 함수를 구현하자. 구현을 통해서 왜 피보나치 수열에서 순환 방식이 반복보다 비효율적인지 알아본다. 순환 종료 조건 : n이 1이나 0인 경우 fib(n)=fib(n-1)+fib(n-2)로 순환 호출하여 계산한다. 순환호출로 함수를 구현하면 사실 알아보기 쉽고 간단해 보인다. 그러나 외연과 달리 효율성은 저멀리로 :D 날아간 코드라고 할 수 있겠다. 먼저 이 함수를 살펴보면, 함수 내에서 비교연산을 한번 수행하고, 이후 2개의 fib함수를 호출하여 연산한다. 따라서 n을 처음 넣었을 때, fib함수 ..
거듭제곱 X^n을 계산하는 알고리즘을 순환 방식과 반복 방식으로 작성할 수 있다. 먼저 결론을 말하면, 거듭 제곱은 앞선 팩토리얼과 달리 순환적인 방법이 더 효율적인 예제이다. ! 팩토리얼의 경우 순환, 반복 두 경우의 시간복잡도가 같았지만, 공간복잡도가 순환방식에서 더 컸기 때문에 반복 구현이 더 효율적임을 이전 포스팅에서 알아보았다. https://he-kate1130.tistory.com/26 [자료구조] 2. 순환 - 팩토리얼 팩토리얼 중등 교육과정을 겪어본 사람이라면 모두가 아는 팩토리얼!! 오늘은 팩토리얼을 계산하는 함수를 순환을 통해 구현해보자. 순환 알고리즘 앞선 포스팅에서도 말했지만, 순환 알고리즘 he-kate1130.tistory.com 구현 반복 순환 성능 시간복잡도를 통해 성능을 ..
팩토리얼 중등 교육과정을 겪어본 사람이라면 모두가 아는 팩토리얼!! 오늘은 팩토리얼을 계산하는 함수를 순환을 통해 구현해보자. 순환 알고리즘 앞선 포스팅에서도 말했지만, 순환 알고리즘은 알고리즘 내에서 자기 자신을 호출하는 방식으로 문제를 해결한다. 예상할 수 있는 순환 알고리즘의 가장 큰 문제점은 알고리즘의 종료에 있다. 알고리즘에 순환의 종료시점을 구현하지 않는다면, 알고리즘은 무한히 반복될 수 있다. 따라서 순환 알고리즘을 구현할 때, 순환부와 종료부를 확실하게 구현하도록 하자! 착오 없이 순환 알고리즘을 구현하려면, 큰 문제를 작은 부분문제로 생각하는 것이 중요하다. 알고리즘을 통해 해결하려는 문제점을 동일한 알고리즘의 작은 문제로 나누어 생각해야 순환부를 작성할 때 착오가 생기지 않는다. 정리하..
순환 알고리즘, 함수의 수행 중 자기 자신을 다시 호출하는 방법 문제의 정의 자체가 순환적으로 구성되어있는 경우에 적합한 문제 해결 방식이다. 이번 chapter에서는 순환 알고리즘을 적용하여 문제를 해결하는 대표적인 사례 4가지를 살펴 볼 예정이다. - 팩토리얼 https://he-kate1130.tistory.com/26 - 거듭제곱 https://he-kate1130.tistory.com/27 - 피보나치 수열 https://he-kate1130.tistory.com/28 - 하노이의 탑 문제
mingyung
'Data structures/Chapter 2. Recursion' 카테고리의 글 목록