자료구조와 알고리즘 학습 노트 기초 (2) 재귀와 귀납적 사고


자료구조와 알고리즘 학습 노트 기초 (2) 재귀와 귀납적 사고

복습 추상 데이터타입 (ADT : Abstract Data Type) 데이터나 연산이 무엇인가는 정의되지만 데이터나 연산을 컴퓨터 상에서 어떻게 구현하는가는 정의되지 않는다 재귀 (순환) 알고리즘이나 함수가 수행 도중 자기 자신을 다시 호출하여 문제를 해결하는 기법 * Good 정렬, 탐색 * Bad 피보나치수, 최적 행렬곱 경로 ex. 팩토리얼의 정의 (n!) def factorial(n): if n = 5 * 4 * factorial (3) -> ...... -> = 5 * 4 * 3 * 2 * 1 = 120 재귀호출의 가장 중요한 것은 재귀 호출을 멈추는 부분이 있어야한다 만약 없다면? 무한호출 순환 vs 반복 시간 복잡도가 동일할 때 어떤 것이 더 효율적인가? 바로 공간의 차이 프로그램의 중요도 ..


원문링크 : 자료구조와 알고리즘 학습 노트 기초 (2) 재귀와 귀납적 사고