재귀함수와 반복문
재귀 함수
재귀 함수는 함수가 자기 자신을 호출하는 방식. 각 호출은 새로운 스택 프레임을 생성하며, 이는 메모리 사용량을 증가. 깊은 재귀 호출이 발생할 경우, 스택 오버플로우가 발생할 수 있다는 단점 그러나 재귀는 문제를 더 작은 하위 문제로 나누어 해결할 수 있어, 복잡한 알고리즘을 간결하게 표현할 수 있는 장점!!
문제의 구조적 표현: 재귀는 문제를 자연스럽게 나누어 해결할 수 있어, 특히 트리 탐색, 분할 정복 알고리즘 등에서 유용합니다.
코드 가독성: 복잡한 로직을 간단하게 표현할 수 있어, 코드의 가독성이 높아집니다.
반복문
반복문은 특정 조건이 참일 경우 반복해서 실행되는 구조
일반적으로 for, while 등의 문을 사용하여 명시적으로 반복
반복문은 메모리 사용량이 적고 실행 속도가 빠르다는 장점이 있음.
효율적인 메모리 사용: 반복문은 새로운 스택 프레임을 생성하지 않으므로 메모리 소모가 적다
빠른 실행 속도: 반복문은 재귀 호출에 비해 일반적으로 빠른 실행 속도를 보여줌.
신기하고 역설적인? 부분이 있다
오히려 많은 내용일 경우 재귀 함수를 사용하는 알고리즘등을 사용하는게 훨씬 좋았다.
이렇게 반복문이 재귀문 보다 좋다고 하지만
많은 내용일 경우 등 시간 복잡도가 안좋게 나온다..
당장 떠오르는 건 퀵정렬인데 배열을 기준값을 기준으로 분활하고 각 부분을 재귀적으로 정렬한다.
(반복도 가능하다고 합니다만 재귀가 더 간결해진다합니다.)
결국은 상황에 맞게 사용한다가 정답인 것 같다.
추가로
내가 원한 결과는
재귀적으로 잘 설계되어 있다면 반복문보다 훨씬 간결하고 효율적으로 문제를 해결할 수 있다는 것을 더 자세히 알 수 있었다.
'TIL' 카테고리의 다른 글
2025 - 02 - 03 Unreal Input MappingContext 우선순위 (1) | 2025.02.03 |
---|---|
2025 - 01- 31 언리얼 에서 객채 움직이기 (c++) (0) | 2025.01.31 |
2025- 01-23 공부 내용 (0) | 2025.01.23 |
github desktop 익숙해지기 (0) | 2025.01.22 |
2025-01-21 Unreal 생성자 (0) | 2025.01.21 |