공간복잡도?
- 공간 복잡도는 프로그램(알고리즘)을 실행시켰을 때 필요로 하는 자원의 공간의 양
- 시간복잡도와 함께 알고리즘의 효율성을 평가하는 주요 기준 중 하나
- 공간복잡도 = 고정 공간 요구량 + 가변 공간 요구량
- 고정 공간: 입력과 출력의 크기에 관계없이 고정된 저장 공간(코드 저장 공간, 단순 변수 등)
- 가변 공간: 실행 중 동적으로 할당되는 공간(동적 배열, 재귀 호출 등)
- 공간 복잡도의 최적화
- 최적화의 이유
- 메모리 자원은 한정적, 효율적인 메모리 사용은 프로그램의 성능을 크게 향상시킴
특히, 대규모 데이터를 다루는 애플리케이션에서 공간복잡도의 최적화는 필수적
- 최적화 방법
- 불필요한 변수, 자료구조의 사용을 최소화
- 재귀 대신 반복문을 사용하여 스택 오버플로우의 위험을 줄인다
- 데이터 압축, 메모리 풀링 등의 기법을 활용하여 메모리 사용을 최적화
- 메모리 풀링