이전 블로그는 여기, 바로 중추절 내일 몇 가지 산술 문제를 소개하는 것이었다 나는 모든 행복한 중추절 당신 바랍니다. 그냥 수학적 모델링 시간에, 오늘 알고리즘 그것의 복잡성 수준의 중요한 지표를 측정하기 위해 처음으로 도입했다. 경우에 충분한 시간은 5 + 2 업데이트된다. 프리젠 테이션 후 시간 복잡도 및 공간 복잡도 파이썬 내장 함수 될 것입니다.
1. 소개
시간의 복잡성이 무엇인지 봐 :
매우 중요한 두 가지 지표를 포함하는 코드의 품질을 측정 :
러닝 타임 과 공간을 .
절대 타임 코드 실행이 추정하는 것은 불가능하지만, 기본적인 코드 실행의 수를 추정 할 수있다.
구현 2. 프로그램 4 개의 가장 일반적인 방법
. (1) T (N-) = KN 선형 실행 시간.
이 완료 될 태스크 때마다 1 / N의 작업 후, KN 시간을 필요로하는 모든 작업을 완료하는 시간 동안 N, K에 도달 한 것을 알 수있다.
(2) T는 (N-) 대해 klog (A) (N)는 = , 실행 횟수를 대수이다.
이 완료 될 태스크 인 1 / A, 사이클, 모든 작업에 필요한 시간이 kloa으로 완료 나머지를 완료 할 때마다 1 / A, 그 다음 태스크의 태스크를 N, K에 도달 한 것을 알 수있을 것이다 (a) N 시간.
. (3) T는 (N-) = K는 , 실행 시간의 상수이다.
작업으로 이해 될 수있는 것은 모두가,이 절대 실행 시간의 코드를 얻을 수있는 모든 작업을 완료하는 K 시간을 필요 N하는 작업을 완료하는 데 필요한 모든 작업을 완료하는 데, n은 시간 번째 K에 도달 할 완료 시간은 K 개의 시간이다.
. (4) T (N-) ^ = 0.5N + 0.5N 2 , 실행 횟수는 다항식.
N 도달 완료하는 작업이 있다는 것을 이해할 것이다, 제는 2 번째로 완료하는 시간에 1을 완성하기 위해 계속 간략화 여기 완료된 모든 작업에 필요한 시간을 첨가 그것은 0.5N ^ 2 + 0.5N 시간입니다.
(5) 시간 복잡도
그러나, 서로 다른 알고리즘으로 인해 위의 상황을 비교할 수없고, 때로는 n의 값에 기초하여 상기 비교 결과가 상이하다. 이 시간은 시간 복잡도의 진보적 인 개념이 될 것입니다 :
함수 F (N) 등이 존재하는 경우 의 무한대에 접근 할 때 N 때 같지 제로 한계 상수 T (N) / F (N) 라는 F (n)은 T (n)에있는 동일한 순서의 함수를 .
붙이고 T (N-) = O (F (N))은, 상기 O는 (F가 (N)) 알고리즘의 점진적인 시간 복잡도이다라고 시간 복잡도 도 큰 O 표기법이라고 .
규칙 (6) 시간 복잡도
실행 시간은 상수 1로 표시되는 일정한 크기가 인 경우;
시간의 함수 떠나 최상위 용어를 ;
최상위 용어는, 존재한다면 생략 최상위 계수의 앞에 .
실행 시간은 생략 계수 (K) 앞의 일정하지 않은 경우.
보다 일반적으로 공통 시간 복잡도는 : O. (1) <O (logN) <O (N-) <O (^ N-2)