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