"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 큰 또는 파이썬

큰 또는 파이썬

2025-02-05에 게시
검색:118

1. 정의

실행 시간의 상한 또는 알고리즘 공간 사용을 설명하는 수학 표기법. 또는 (f (n)) 로 표시됩니다. 여기서 f (n) 는 입력 크기 n 에 따라 시간 또는 공간을 나타내는 함수입니다.

Notación Big O - Python
2. 목적

    알고리즘 비교
  • : 다른 알고리즘을 비교하고 주어진 문제에 대해 가장 효율적인 것을 선택할 수 있습니다. 확장 성
  • : 데이터 양이 증가 할 때 알고리즘이 어떻게 행동하는지 예측하는 데 도움이됩니다.
  • 3. 복잡성 분석

더 나쁜 경우

: 알고리즘이 더 오래 걸리거나 더 많은 리소스를 사용하는 시나리오를 나타냅니다. 크거나 일반적 으로이 경우를 나타냅니다.
  • 더 나은 사례 및 평균 사례 : 중요하지만 큰 O.
  • 4. 우주 대 시간
임시 복잡성

: 알고리즘이 실행되는 데 걸리는 시간을 나타냅니다.

    공간 복잡성
  • : 사용하는 추가 메모리의 양을 나타냅니다. 또는 (1) (상수 공간) 또는
  • (선형 공간)와 같은 표기법이있을 수 있습니다.
  • 예: import timeit matplotlib.pyplot을 plt로 가져옵니다 CPROFILE 가져 오기 # O (1) def constant_time_operation () : 반환 42 # O (로그 N) def logarithmic_time_operation (n) : 카운트 = 0 n> 1 : n // = 2 카운트 = 1 반환 수 # 또는 (n) def linear_time_operation (n) : 총 = 0 범위 (n)의 i를 위해 : 총 = i 총 수익 # O (n log n) def linear_logarithmic_time_operation (n) : n ]]] plt.figure (figsize = (14, 8)) plt.bar (함수, 시간, 색상 = 색상) i, v in enumerate (시간) : plt.text (i, v 0.5, f "{v : .6f}", ha = 'center', va = '하단', 회전 = 0, color = 'black') plt.xlabel ( '기능 복잡성') plt.ylabel ( '평균 시간') plt.title ( '다른 알고리즘 복잡성의 실행 시간') plt.grid (axis = 'y', lnetyle = '-', linewidth = 0.5, color = 'gry', alpha = 0.5) plt.tight_layout () plt.show () def main () : 결과 = [] results.Append (( "또는 (1)", 척도_time (constant_time_operation))))) results.Append (( "또는 (log n)", gease_time (logarithmic_time_operation, 10))))))) results.append (( "또는 (n)", gease_time (linear_time_operation, 10)))))) results.Append (( "또는 (n log n)", 척도_time ( linear_logarithmic_time_operation, 10))))) results.Append (( "또는 (n^2)", gease_time (Quadratic_time_operation, 7)))))) results.Append (( "또는 (2^n)", exponential_time_operation, 7))))) results.Append (( "또는 (n!)", gease_time (inforcial_time_operation, 112)))))) Plot_Results (결과) __name__ == '__main__': cprofile.run ( "main ()", sort = "totime", filename = "output_profile.prof")

읽어 주셔서 감사합니다 !!
반응과 의견.

            
릴리스 선언문 이 기사는 https://dev.to/stevenhdz/notacion-big-o-1omml?1에서 재현됩니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3