728x90
반응형
✅ 재귀 알고리즘(Recursive Algorithm)
한 알고리즘의 내부에서 자기 자신을 다시 부르는 알고리즘을 의미한다. 반복 패턴과 종료 조건이 존재한다. 스택으로부터 메모리 할당 및 해제를 반복하는 반복 함수 호출로 속도는 느리다.
➰ 1부터 n까지의 합 구하기
def RecursiveSum(n):
return 1 if n == 1 else RecursiveSum(n - 1) + n
print("Recursive Sum of 1 to", upper, "=", RecursiveSum(upper))
➰ 배열의 숫자의 합 구하기 (Recursive Sum)
data = input("Enter list of numbers: ")
numbers = data.split()
numbers = [int(i) for i in numbers]
def RecursiveArraySum(nbrs, k):
if k == 0:
return nbrs[0]
return RecursiveArraySum(nbrs, k - 1) + nbrs[k]
print("Recursive Array Sum:", RecursiveArraySum(numbers, len(numbers) - 1))
➰ 피보나치 수열
def fibo(n):
if n <= 1:
return n
return fibo(n-1) + fibo(n-2)
➰ 팩토리얼
def facto(n):
if n == 0:
return 1
else:
return n * facto(n - 1)
728x90
반응형
'ALGORITHM' 카테고리의 다른 글
[ALGORITHM] 3. 시간 복잡도(Time Complexity), Big-O notation (0) | 2022.01.05 |
---|---|
[ALGORITHM] 2. 선형 탐색(Linear Search), 이진탐색(Binary Search) (0) | 2022.01.05 |