안녕하세요
게임개발자가 되기위해 공부하고있는 구구입니다.
오늘부터는 알고리즘에 대해 공부하려 합니다.
- 재귀호출(Recursive call)
- 함수 내부에서 자기자신을 반복적으로 호출하는 것
- 반복 행위를 하는 함수 == 재귀함수
- 알고리즘 구현 시 유용
- 반복문보다 직관적
- 복잡한 문제 빠르게 해결가능
- 재귀 호출 주의할 점
- 반드시 중지되어야 함(기저 조건, 종료 조건)
- 재귀호출로 문제를 해결할 수 있는지 고민(스택 오버플로우 주의)
- 팩토리얼(Factorial)
- 정규식
f(n) = n*(n-1) (단, f(1) = 1)
5! = 5*4*3*2*1 = 120
- 코드
static int FuncFactorial(int nNumber)
{
int nResult = 0;
if (nNumber == 1)
{
nResult = 1;
}
else
{
nResult = nNumber * FuncFactorial(nNumber - 1);
}
return nResult;
}
- 피보나치 수열
- 정규식
f(n) = f(n-1)+f(n-2) (단, n>2, f(1) = 1, f(2) = 1)
- 코드
static int FuncFibonacci(int nSequence)
{
int nResult = 0;
if (nSequence == 1 || nSequence == 2)
{
nResult = 1;
}
else
{
nResult = FuncFibonacci(nSequence - 1) + FuncFibonacci(nSequence - 2);
}
return nResult;
}
- 정렬의 안정적 특성
- 정렬되지 않은 상태에서 같은 키값(즉 수치가 같은 데이터)을 가진 원소의 순서가 정렬후에도 유지되는지 확인
오늘은 여기까지 하도록 하겠습니다.
'게임 개발 공부 > 자료구조' 카테고리의 다른 글
알고리즘 3(버블 정렬) (0) | 2022.01.04 |
---|---|
알고리즘 2(선택정렬) (0) | 2022.01.03 |
선형 자료구조 5(해쉬테이블 & 딕셔너리) (0) | 2022.01.01 |
선형 자료구조 4 (큐) (0) | 2021.12.31 |
선형 자료구조 3 (스택) (0) | 2021.12.30 |
댓글