>source

알고리즘과 데이터 구조를 연구하면서 내 스크립트에 대한 Bigo Complexity를 수동으로 평가합니다. 어떤 방식 으로든, 모든 주어진 함수 또는 프로그램에 대한 Bigo를 계산하기 위해 파이썬 IDE 또는 패키지의 버튼을 말하고 있습니다.

업데이트 :

내가 가지고 있다고 가정 해 봅시다

def print_first_element(a):
    print a[0]

왜 내가 알 수없는 분석기를 쓸 수없는 이유는 ok 인덱스와 o (1)에 의한 배열 (목록) 또는

def print_all_element_of_list(a):
    for i in a:
        print i

OK는 완전한 스캔이 있으므로 복잡성이 O (n)

일반적으로 임의의 code로 작동 할 일은 없습니다.

David Heffernan2021-09-04 07:53:20

주어진 프로그램과 주어진 입력이 유한 시간 (멈춤 문제를 찾는지)에서 실행되는지 여부를 알 수는 없으며, 혼자서 임의의 입력에 대해보다 자세한 답변을 얻을 수 있습니다.

Leeor2021-09-04 07:53:20

저는 기능을 위해 Python에 대한 프로파일 러를 사용할 수 있고 다양한 크기의 입력에 대한 실행 시간을 볼 수 있습니다. 마음 속의 그래프 (또는 당신이 틀린 느낌있는 경우 실제 그래프)

sethi2021-09-04 07:53:20

첫 번째 경우에는 A 트리 구현이있는 사전 일 수 있습니다.이 경우 함수는 O (로그 N)입니다. 또는 다른 것; 우리는 그것이 파이썬의 builtin 목록의 인스턴스라고 가정 할 수 없습니다.

mike39962021-09-04 07:53:20
  • 답변 # 1

    불행히도, 불가능합니다. 보다 문제를 멈추는 것...에

    나는 그 질문을 갱신했다. 왜 그럴 수 없는지 의견을 말해 줄 수 있니?

    Igor Barinov2021-09-04 07:53:20
  • 답변 # 2

    일반적으로 불가능합니다. 여기에는 일부 프로그램의 복잡성을 계산할 수있는 파이썬 프로그램이 하나 있습니다. https://github.com/mortal/complexity.

    왜 가능하지 않은 이유를 설명해 주시겠습니까? 공간의 경우 Big-O 복잡도도

    Igor Barinov2021-09-04 07:53:20

    음, 다른 프로그램이 전혀 중지되는지 여부를 결정할 수있는 프로그램을 작성하는 것은 불가능합니다 (en.wikipedia.org/wiki/halting_problem 참조). 복잡성을 결정할 수 있습니다. 문제가 멈출 수 있습니다. 프로그램의 큰 O를 계산할 수있는 경우 정지시킵니다.

    ReyCharles2021-09-04 07:53:20
  • 이전 python : SPACY 3 -LEMMA_ 반환 된 문자열이됩니다
  • 다음 c# : Nhibernate 엔티티의 구현과 같은 구현, Unspoxy Questions