Data Structures & Algorithms 72

[Data Structures] 재귀 (Recursion)의 이해

재귀함수는 자료구조나 알고리즘의 어려운 문제를 단순화하는데 사용되는 중요한 무기이다 1. 재귀함수의 흐름 Recursive 함수를 실행하는 중간에 다시 Recursive 함수가 호출되면, Recursive 함수의 복사본을 하나 더 만들어서 복사본을 실행하게 된다 Recursive 함수를 정의하는데 있어서 '탈출조건'을 구성하는 것은 매우 중요한 일이다 2. 재귀의 활용 - 피보나치 수열 피보나치 수열은 재귀적인 형태를 띠는 대표적인 수열 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 .... 수식 표현 코드 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include int Fibo(int n) { if(n == 1) return 0;..

[Data Structures] 자료구조와 알고리즘에 대한 기본 이해

1. 자료구조 vs 알고리즘 자료구조: 데이터의 표현 및 저장방법 알고리즘: 표현 및 저장된 데이터를 대상으로 하는 '문제의 해결 방법' 2. 자료구조의 분류 3. 시간 복잡도 (Time Complexity) & 공간 복잡도 (Space Complexity) 시간 복잡도: 알고리즘의 속도를 평가하는 요소 연산의 횟수를 통해서 빠르기 판단 / 데이터의 수 n에 대한 연산횟수의 함수 T(n)을 구성 공간 복잡도: 알고리즘의 메모리 사용량을 평가하는 요소 4. 순차 탐색 알고리즘 (Linear Search Algorithm)의 시간 복잡도 계산 if(ar[i] == target) 핵심이 되는 연산을 중심으로 시간 복잡도를 계산 Worst Case를 중심으로 알고리즘의 성능을 판단 데이터가 n개라고 가정하면 =..

728x90