이 문서는 Google Cloud Translation API를 사용해 자동 번역되었습니다.
어떤 문서는 원문을 읽는게 나을 수도 있습니다.
컴퓨터 과학에서 알고리즘의 시간 복잡도는 알고리즘이 입력 길이의 함수로 실행하는 데 걸리는 시간을 정량화합니다. 시간 복잡도는 일반적으로 알고리즘에 의해 수행되는 기본 작업의 수를 계산하여 추정되며 기본 작업은 수행하는 데 고정된 시간이 걸립니다. 따라서 알고리즘에 걸리는 시간은 기껏해야 기본 연산 수의 상수 배수입니다.
알고리즘의 시간 복잡도는 종종 함수 T(n)으로 표현되며 여기서 n은 입력 길이입니다. 예를 들어, 알고리즘의 시간 복잡도가 T(n) = 2n^2 + 5n + 10인 경우 입력 크기 n이 증가함에 따라 알고리즘에 걸리는 시간은 2차적으로 증가합니다.
시간 복잡도를 표현하는 일반적인 두 가지 방법은 점근적 표기법과 정확한 시간 복잡도입니다.
점근적 표기법은 인수가 무한대 경향이 있으므로 함수의 제한 동작을 설명하는 수학적 표기법입니다. 점근적 표기법의 가장 일반적인 유형은 Big O 표기법, Big Ω 표기법 및 Big Θ 표기법입니다.
정확한 시간 복잡도는 알고리즘이 입력 길이의 함수로 실행하는 데 걸리는 정확한 시간을 설명하는 수학적 표기법입니다.
일반적인 시간 복잡도 함수는 다음과 같습니다.
알고리즘의 시간 복잡도는 데이터 구조의 선택에 의해 영향을 받을 수 있습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 입력이 배열인지 연결 목록인지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 알고리즘의 선택에 의해서도 영향을 받습니다. 예를 들어, 정렬 알고리즘의 시간 복잡도는 알고리즘이 비교 정렬인지 비비교 정렬인지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 구현 선택에 의해서도 영향을 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 구현이 고급 언어인지 저급 언어인지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 하드웨어 선택의 영향도 받습니다. 예를 들어, 하드웨어가 범용 컴퓨터인지 특수 목적 컴퓨터인지에 따라 정렬 알고리즘의 시간 복잡도가 다를 수 있습니다.
알고리즘의 시간 복잡도는 운영 체제 선택의 영향도 받습니다. 예를 들어, 정렬 알고리즘의 시간 복잡도는 운영 체제가 멀티태스킹 운영 체제인지 단일 작업 운영 체제인지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 컴파일러의 선택에 의해서도 영향을 받습니다. 예를 들어, 정렬 알고리즘의 시간 복잡도는 컴파일러가 최적화 컴파일러인지 비최적화 컴파일러인지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 라이브러리 선택의 영향도 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 라이브러리가 Standard Template Library인지 Boost 라이브러리인지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 컴퓨터 아키텍처의 선택에 의해서도 영향을 받습니다. 예를 들어 컴퓨터 아키텍처가 von Neumann 아키텍처인지 Harvard 아키텍처인지에 따라 정렬 알고리즘의 시간 복잡도가 다를 수 있습니다.
알고리즘의 시간 복잡도는 캐시 크기 선택의 영향도 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 캐시 크기가 작은지 큰지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 주 메모리 크기의 선택에도 영향을 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 주 메모리 크기가 작은지 큰지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 선택한 가상 메모리 크기의 영향도 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 가상 메모리 크기가 작은지 큰지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 선택한 디스크 크기의 영향도 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 디스크 크기가 작은지 큰지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 선택한 네트워크 크기의 영향도 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 네트워크 크기가 작은지 큰지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 입력 크기 선택의 영향도 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 입력 크기가 작은지 큰지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 출력 크기 선택의 영향도 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 출력 크기가 작은지 큰지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 선택한 프로세서 수의 영향도 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 프로세서의 수가 적거나 많거나에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 단어 크기의 선택에도 영향을 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 단어 크기가 작은지 큰지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 클럭 속도의 선택에 의해서도 영향을 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 클록 속도가 느린지 빠른지에 따라 다를 수 있습니다.
알고리즘의 시간 복잡도는 I/O 장치의 선택에 의해서도 영향을 받습니다. 예를 들어 정렬 알고리즘의 시간 복잡도는 I/O 장치가 느린지 빠른지에 따라 다를 수 있습니다.