강사는 알고리즘의 계산 복잡도를 계산하는 방법을 알려 주었지만 매우 간단하고 잘 수행하지 못했습니다. 보다 구체적으로, 누군가가 나에게 다음의 계산 복잡도 계산 도움이 될 수 : 그들은 방법 나는 그것에 대해 생각했습니다알고리즘의 효율성과 복잡성 계산
While (PLength > 0)
chartest = sHex(i)
ascvalue = Strings.Asc(chartest)
decvalue = Convert.ToDecimal(ascvalue)
shiftdecvalue = decvalue + 1
asc = ChrW(shiftdecvalue)
emptychararray(i) = asc
i = i + 1
PLength = PLength - 1
End While
을, 그냥 나옵니다 T (N) = C_1 * N + C_2 * (N (n-1) + C_8 * (n-1) + C_8 * (n-1) + C_4 * (n-1)) + C_9 * (n-1) + C_10 * (n-1)
그러나 나는 그것을 지나치게 단순화하는 것처럼 느낀다. 또한, 어떻게 이것을위한 큰 O 표기법을 얻습니까? 나는 스스로에게 이것을 가르치는 방법에 대한 자료를 온라인에서 찾고 있었으므로 권고 사항이 있다면 크게 감사 할 것입니다. 미리 감사드립니다.
여기서 많은 용어를 어디에서 구합니까? 당신은'T (n) = T (n-c) 또는 T (n/c)를 포함하는 것 '으로 작성해야합니다. 재발 관계의 몇 가지 다른 예를 살펴보고, 당신이해야 할 일이 분명 해져야합니다. 마찬가지로 재귀 관계를 big-O 표기법으로 변환하는 많은 예제를 찾을 수 있어야합니다. 또한'sHex','Strings.Asc','Convert.ToDecimal'과'ChrW''의'i'와 관련된 복잡성을 우리에게 말해줘야합니다. – Dukeling
교수님이 가르쳐 준 방식은 일부 작업을 완료하는 모든 코드 줄에 상수가 주어진 다음 작업이 수행 된 횟수를 곱한 것입니다. 그래서 제 생각에는 모든 라인이 n-1 번 완료되었습니다 (n은 while 루프가 수행되는 횟수에 달려 있기 때문입니다). 귀하가 요청한 항목의 복잡성은 1 단계 작업으로 가정됩니다 (주문 n이라고 생각합니다). – user2016082