그 인식 알고리즘의 시간 복잡도 O (1), O (없음) O (log2n), O (N ^ 2)

알고리즘의 복잡성으로 나누어 져 시간 복잡도공간 복잡도 , 좋고 나쁜 코드를 모두도 측정이 중요한 지표입니다 :

  • 시간 복잡도 : 수단 수행하는 전산 노력이 알고리즘을 필요;
  • 복잡성 사이 : 필요한 알고리즘의 메모리 공간의 구현을 의미합니다.

알고리즘을 실행하는 알고리즘의 복잡성을 반영 필요한 방법 컴퓨터 자원을 많이, 가장 중요한 컴퓨터 자원은 시간과 공간의 복잡성에 시간과 공간 (즉, 등록) 자원, 복잡성이다.

1. 개념 이해

1.1 기본 실행 시간 : T (N)

운영 환경 및 입력 크기 때문에, 절대 시간 코드의 실행은 헤아릴 수 있지만, 우리는 기본 코드 실행의 수를 추정 할 수있다.

일반적으로, 기본 알고리즘 동작이 반복 횟수를이 함수의 상대 시간을 표현하기 위해 사용되는 크기 N 문제의 기능을 수행하고, T (N)로 기록 될 수있다.

1.2 시간 복잡도 : O (N)

불확실성의 규칙의 구현 때문에 T (n은) 분석 및 타임 코드를 실행하는 기간을 비교하기에 충분하지 않습니다, 그래서는있다 (기사는 네 가지에 아래에 나열된) 진보적 인 시간의 복잡성 개념 (점근 시간 복잡성), 공식 다음과 같이 정의된다 :

함수 F (N), 예컨대 N, 호출 F (N)은 T (n)은 (n)이 제로 한계 상수와 동일하지 무한대, T (N) / F 인 접근하면 그 존재하면 동일한 순서의 함수이다 . T (n)에 의해 표시 = O (F (N)) : O (F (N)의) 알고리즘, 약어의 점진적인 시간 복잡도 인 시간 복잡도.

대문자 "O"와 점근 시간 복잡도는 또한 큰 O 표기법을 알려져, 표현된다.

시간 및도 6의 알고리즘의 공간 복잡도 거기 계산 복잡도 O (1), O (없음) O (logn) O (nlogn), O (N ^ 2) 개념.

은 또한 공간의 복잡성에 사용되는 시간 복잡도를 표시하는 데 사용되지 않습니다 .

알고리즘의 시간 소모적 / 소비 데이터 공간의 증가 사이의 관계를 나타내는 함수 뒤에 O 브래킷. 여기서 n은 입력 데이터의 양을 나타낸다 .

1.3 공간적 복잡도 : S (N)

마찬가지로, 시간 복잡도, 공간 복잡도 측정은 저장 공간을 의미 알고리즘은 컴퓨터 내에서 실행될 때, 필요로 언급 : S (N) = O (F (N)).

위에서 언급 한, O (n)은 시간 복잡도 만 그것은 공간적 복잡도 사용도 나타내는데 사용되는 것은 아니다.

2. 현장 분석 :

이 장면 분석을위한 시간 복잡도 인 복잡성의 시간 순서 : O (1) <O ( log2n) <O (N) <O (N ^ 2)

장면 1 :. T (N-) = O. (1)

이 알고리즘의 실행 시간에 관계없이 입력 데이터의 시간 소모적 / 공간 소모 및 입력 데이터의 크기가 아무는 많은 시간, 시간 소모적 / 공간 소비가 동일 증가없는 일정한 시간과 공간 복잡성을 최소가된다 나타낸다.

해시 알고리즘은 전형적인 O (1) 시간 복잡도, 당신은 (단어의 충돌에 상관없이) 계산 후 대상을 찾을 수있는 크기의 데이터에 상관없이입니다.

장면 2 : T (N-) = O (log2n)

데이터가 증가 N 데이터가 증가 될 때 시간 증가 로그 n 회 소비 (로그베이스 (2)는, 예를 들어, 여기에서 일 때 선형 미만, 256 배 증가 만 소모 8 배 시간 복잡도).

이진 검색은 매 30 단지 대상을 찾기 위해 팔을 찾을 필요가 256 데이터 외모의 가능성을 배제하면 O (로그 n)이 알고리즘은 찾을 수 있습니다.

장면 3 :. T (N-) = O (N-)

이 알고리즘은 증가 여러번 소모 선형 알고리즘 데이터 증가 수회 양임을 나타낸다.

이러한 배열의 내부에 많은 수가 발견까지 루프를 공통으로, n을 변수는 다시 스캔해야 작업의 수는 알고리즘의 복잡도가 O (N)이고, n이다.

장면 4. T (N-) = O (^ N-2)

이는 증가되는 N 배의 시간 선형 복잡도보다 높은 시간 소모적 제곱 배 증가 n을 나타내는 데이터의 양.

예 거품 정렬 들어, 스캔 N × N 회 전형 O (N ^ 2) 알고리즘, 수 N 정렬이 필요하다.

네 가지 시나리오 외에 프로그래밍 세계에서 다양한 알고리즘뿐만 아니라 다양한 형태의 시간 복잡도를 가지고, 우리는 우선 순위에 따라 증가 크기의 순서에 따라, 시간 복잡도를 수행합니다

순서 (log2n)의 일정한 순서 O (1) <<<사각형 순서 O (N ^ 2) <입방 순서 O의 (N ^ 3) <K 회 선형 순서 O (N) <선형 순서 O (nlog2n) 파티 순서 O (N ^ k)는 <지수 순서 O (2 ^ N) ......

알고리즘 3. 비교 :

정렬 알고리즘

  평균 시간

최악의 경우

안정

추가 공간

거품

 O (N 2)

 O (N 2)

안정된

O (1)

N 시간 더

교환

  O (N 2)

  O (N 2)

불안정한

O (1)

N 시간 더

선택

 O (N 2)

 O (N 2)

불안정한

O (1)

N 시간 더

삽입

 O (N 2)

 O (N 2)

안정된

O (1)

주문 가장 좋은

기수

O (R 로그의 B)

O (R 로그의 B)

안정된

O (N)

B는 사실 숫자 (0-9) 인

R은 기수은 (a 천)

껍질

O (nlogn)

O (N (S)) (1) <S <(2)

불안정한

O (1)

S가 패킷을 선택

빠른

O (nlogn)

O (N 2)

불안정한

O (nlogn)

N 큰 더 나은

합병

O (nlogn)

O (nlogn)

안정된

O (1)

N 큰 더 나은

더미

O (nlogn)

O (nlogn)

불안정한

O (1)

N 큰 더 나은

 

자신의 이해와 함께, 몇 가지 공식 통계를 그립니다, 우리는 알고리즘을 요약하면, 원칙을 확장하는 개념에서 다루는 시간의 도입의 복잡성에보다 포괄적 인 블로그를 함께 넣어, 우리는 도움을하도록 노력하겠습니다 .

 

Shaoxia ...ヾ(◍ ° ∇ ° ◍) 테크노゙... 유지하십시오 
더 많은 사람들이 벌을 배울 볼 수 있도록, 환영 엄지 손가락, 주석, 플러스 관심을
내 "오늘의 헤드 라인에 더 흥미로운, 제발에주의를 아니오 ": 자바 클라우드 노트 없습니다

게시 된 171 개 원래 기사 · 원 찬양 (312) ·은 10 만 + 조회수

추천

출처blog.csdn.net/weixin_44259720/article/details/104942598