2014-10-19 2 views
-3

경우에 따라 코드의 루프 내에 루프가 있습니다. 내부 루프의 작업을 수행하는 함수를 사용하면 실제로 프로그램을 실행하는 데 걸리는 시간을 줄일 수 있습니까? 대신루프 내에서 루프의 런타임 분석

for i=0 to i=upper limit 
    function(); (call a function which contains the innner for loop) 

를 사용

for i=0 to i=upper limit { 
    for j=0 to j= less than or equal to upper limit {code here} 

의 이 코드를 최적화하는 것도 도움이 될 것입니다?

+3

나는 그렇게 생각하지 않는다. 심지어 함수 호출, 스택 할당 등의 오버 헤드를 추가 할 것입니다. –

+0

왜 그렇게 생각합니까? 질문의 맥락을 설명해 주시겠습니까? – jogojapan

답변

1

할 수 있습니다 같은과 기능에하지 숨기기 복잡성 :

for x = 1 to N 
    doSomethingXTimes(x) 

doSomethingXTimes()N에 의존한다는 사실은 (당신이 N * N을 실행하고 becaue 모든 일이, O(n2) 것을 의미 나 어떤 값은 그 단계에 비례합니다).

+0

내 질문에 답해 주셔서 감사합니다.이 일에 대해 생각하는 것이 너무 바보 같았습니다. 여전히 기쁩니다. –

0

아니요. 알고리즘 복잡성에 관한 한 코드를 최적화하지 않습니다.

또한 외부 for 루프 내에서 함수를 사용하면 코드에서 작성된 함수 호출 수가 증가하고 속도가 느려집니다. (당신은 기능을 인라인으로 만들 수있다)