복잡 도 분석 (상): 알고리즘 의 집행 효율 과 자원 소모 (독후감) 를 어떻게 분석 하고 통계 하 는가

복잡 도 분석 이란 무엇 입 니까?
  • 데이터 구조 와 알고리즘 은 컴퓨터 , 공간 을 어떻게 집행 하 는 지 해결 했다.
  • 따라서 데이터 구조 와 알고리즘 의 우수 성 을 두 가지 측면 에서 평가 해 야 한다.
  • 시간 복잡 도와 공간 복잡 도 두 개념 으로 성능 문 제 를 묘사 하고 이들 을 복잡 도 라 고 통칭 한다.
  • 복잡 도 는 알고리즘 의 실행 시간 이나 공간 을 차지 하 는 크기 와 데이터 규모 의 증가 관 계 를 묘사 했다.

  • 왜 복잡 도 분석 이 필요 합 니까?
  • 성능 테스트 에 비해 복잡 도 분석 은 집행 환경 에 의존 하지 않 고 원가 가 낮 으 며 효율 이 높 고 조작 하기 쉬 우 며 지도 성 이 강하 다.
  • 복잡 도 분석 을 파악 하면 성능 이 좋 은 코드 를 작성 하여 시스템 개발 과 유지 비용 을 낮 출 수 있 습 니 다.

  • 어떻게 복잡 도 분석 에 들 어 갑 니까?
    대 O 표현 법: 코드 를 실행 하지 않 고 '육안' 으로 코드 의 실행 시간 을 얻 는 것 이다.
  • 출처: 알고리즘 의 실행 시간 은 각 줄 코드 의 실행 횟수 와 정비례 한다. T (n) = O (f (n) 로 표시 한다. 그 중에서 T (n) 는 알고리즘 의 실행 총 시간 을 나타 내 고 f (n) 는 코드 의 실행 총 횟수 를 나타 내 며 n 은 데이터 의 규 모 를 나타 낸다.
  • 특징: 시간 복잡 도 를 예 로 들 면 시간 복잡 도 는 알고리즘 집행 시간 과 데이터 규모 의 성장 변화 추 세 를 묘사 하기 때문에 '상수 단계', 낮은 단계, 계 수 는 실제 적 으로 이런 추세 에 결정적 인 영향 을 미 치지 않 기 때문에 시간 복잡 도 분석 을 할 때 이런 항목 을 무시 할 수 있다.최대 헤비급 하나만 기록 하면 돼.
  • 큰 O 시간 복잡 도 는 실제 코드 의 진정한 운행 시간 이 아니 라 코드 집행 시간 세 데이터 규모 가 증가 하 는 변화 추 세 를 나타 낸다.그래서 시간 복잡 도 는 라 고도 부른다.

  • 요약: 모든 코드 의 실행 시간 T (n) 는 줄 마다 코드 의 실행 횟수 n 과 정비례 한다.총괄 공식: T (n) = O (f (n))
    시간 복잡 도 분석
  • 코드 만 주목 합 니 다.
  • 덧셈 법칙: 총 복잡 도 는 의 그 코드 의 복잡 도 와 같다.총괄 공식: T1 (n) = O (f (n)), T2 (n) = O (g (n);그러면 T (n) = T1 (n) + T2 (n) = max (O (f (n), O (g (n)) = O (max (f (n), g (n)))
  • 곱셈 법칙: 끼 워 넣 은 코드 의 복잡 도 는 끼 워 넣 은 내외 코드 의 복잡 도의 곱셈 과 같다.총괄 공식: T (n) = T1 (n) T2 (n) = O (f (n) O (g (n)) = O (f (n) * g (n))
  • 다 규모 덧셈: 예 를 들 어 방법 은 두 개의 매개 변수 가 두 순환 의 횟수 를 제어 하 는 것 이 있 으 면 이때 두 개의 복잡 도 를 더 해 야 한다.

  • 복잡 도 급 (수량 급 에 따라 증가)
  • 다항식 단계
  • 상수 단계 O (1)
  • 대수 단계 O (logn)
  • 선형 단계 O (n)
  • 선형 대수 단계 O (nlogn)
  • 제곱 O (n2), 입방 O (n3)... k 차 O (nk)
  • 비 다항식
  • 지수 단계 O (2n)
  • 단계 O (n!)

  • 공간 복잡 도 분석
    공간 과 복잡 도와 시간 복잡 도 분석 방법 은 대체적으로 유사 하고 알고리즘 의 저장 공간 과 데이터 규모 간 의 성장 관 계 를 나타 낸다.
    주소

    좋은 웹페이지 즐겨찾기