이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
공간 복잡성이란 무엇입니까?
공간 복잡도는 알고리즘이 완료될 때까지 실행하는 데 필요한 메모리 양입니다. 입력 데이터의 크기가 증가함에 따라 알고리즘이 사용하는 메모리 양과 관련이 있습니다.
공간 복잡성에는 정적 및 동적의 두 가지 유형이 있습니다. 정적 공간 복잡도는 특정 입력 크기에 대해 알고리즘에 필요한 메모리 양입니다. 동적 공간 복잡도는 입력 크기가 증가함에 따라 알고리즘에 필요한 메모리 양입니다.
정적 공간 복잡도는 일반적으로 계산하기 쉽습니다. 예를 들어 알고리즘에 크기 n의 배열이 필요한 경우 정적 공간 복잡도는 O(n)입니다.
동적 공간 복잡성은 일반적으로 계산하기가 더 어렵습니다. 예를 들어 알고리즘에 크기 n의 배열이 필요하고 알고리즘이 실행될 때마다 배열 크기가 1씩 증가하는 경우 동적 공간 복잡도는 O(n)입니다.
알고리즘의 공간 복잡도를 계산하려면 다음을 알아야 합니다.
예를 들어 크기가 n인 배열이 필요한 알고리즘이 있다고 가정해 보겠습니다. 알고리즘이 실행될 때마다 배열의 크기가 1씩 증가하면 동적 공간 복잡도는 O(n)입니다.
알고리즘의 공간 복잡도를 계산하려면 다음을 알아야 합니다.
예를 들어 크기가 n인 배열이 필요한 알고리즘이 있다고 가정해 보겠습니다. 알고리즘이 실행될 때마다 배열의 크기가 1씩 증가하면 동적 공간 복잡도는 O(n)입니다.
알고리즘의 공간 복잡도를 계산하려면 다음을 알아야 합니다.
예를 들어 크기가 n인 배열이 필요한 알고리즘이 있다고 가정해 보겠습니다. 알고리즘이 실행될 때마다 배열의 크기가 1씩 증가하면 동적 공간 복잡도는 O(n)입니다.
한 가지 예를 살펴보겠습니다.
다음 알고리즘을 고려하십시오.
int findMax(int array[], int n) {
int max = array[0];
for (int i = 1; i < n; i++) {
if (array[i] > max) {
max = array[i];
}
}
return max;
}
이 알고리즘은 최대값을 저장하는 데 하나의 변수만 필요하기 때문에 O(1)의 정적 공간 복잡도를 갖습니다.
이제 크기 n의 배열이 필요한 알고리즘이 있고 배열의 크기는 알고리즘이 실행될 때마다 1씩 증가한다고 가정해 보겠습니다. 이 경우 동적 공간 복잡도는 O(n)입니다.
알고리즘의 공간 복잡도를 계산하려면 다음을 알아야 합니다.
예를 들어 크기가 n인 배열이 필요한 알고리즘이 있다고 가정해 보겠습니다. 알고리즘이 실행될 때마다 배열의 크기가 1씩 증가하면 동적 공간 복잡도는 O(n)입니다.