복잡성의 시간 효율적인 알고리즘 소개

  이전 블로그는 여기, 바로 중추절 내일 몇 가지 산술 문제를 소개하는 것이었다 나는 모든 행복한 중추절 당신 바랍니다. 그냥 수학적 모델링 시간에, 오늘 알고리즘 그것의 복잡성 수준의 중요한 지표를 측정하기 위해 처음으로 도입했다. 경우에 충분한 시간은 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)

 

추천

출처www.cnblogs.com/ITXiaoAng/p/11515699.html