알고리즘과 데이터 구조를 연구하면서 내 스크립트에 대한 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)
등
주어진 프로그램과 주어진 입력이 유한 시간 (멈춤 문제를 찾는지)에서 실행되는지 여부를 알 수는 없으며, 혼자서 임의의 입력에 대해보다 자세한 답변을 얻을 수 있습니다.
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
일반적으로 임의의 code로 작동 할 일은 없습니다.
David Heffernan2021-09-04 07:53:20