큰-O : 이것은 나에게 새로운 개념은 여전히 계산 나는 다음과 같은 C에 대한 큰-O 실행 시간을 계산 ++ 기능을 몇 가지 지침 절실히 필요 해요 런타임
Fraction Polynomial::solve(const Fraction& x) const{
Fraction rc;
auto it=poly_.begin();
while(it!=poly_.end()){
Term t=*it;
//find x^exp
Fraction curr(1,1);
for(int i=0;i<t.exponent_;i++){
curr=curr*x;
}
rc+=t.coefficient_*curr;
it++;
}
return rc;
}
, 그래서 나는 데 그것을 올바르게하는 것에 관한 약간의 문제. 나는 한 번 (자동 it = poly_.begin 및 끝에 rc 반환) 적어도 두 번 작업이 있다고 가정하지만 while 루프 사용하여 작업 수를 계산하는 방법을 잘 모르겠습니다. 내 교수에 따르면 올바른 런타임은 O (n)이 아닙니다. 누구라도 지침을 제시 할 수 있다면 크게 환영 할 것입니다. 이 질문에 대답하는 방법을 이해하고 싶지만 온라인에서이 기능을 찾을 수 없습니다. 그래서 여기 있습니다. 고맙습니다.
루프 내에 루프가 있습니다. 그게 당신에게 무엇을 제안합니까? – PaulMcKenzie
먼저 간단한 문제를 해결해보십시오. 예를 들어 런타임에 inner for 루프가 없으면 어떻게 될까요? –