Könnte jemand bitte erklären, warum die folgende Code-Komplexität auf diese Weise berechnet wird: 1 + 2 + 3 + 4 + ... + (n-2) + (n-1) + n = 0 (n^2)Quadratische Zeitkomplexität: Warum wird der folgende Code auf diese Weise berechnet?
def CalculateAveragesTotElementOverzicht(inputlist):
resultlist = [0]*len(inputlist)
for i in range(0,len(inputlist)):
som = 0
for j in range(0,i+1):
som += inputlist[j]
average = som/(i+1)
resultlist[i] = average
return resultlist
ich wo sagen Sie lieber O (n^2) seit 'sum (1 + .. + n) = (n + 1) * n/2' –
Ihre Frage ist nicht klar, es sieht aus wie diese Funktion eine Liste von Zahlen und Ausgaben nimmt eine Liste der Durchschnittswerte der Summen der Zahlen bis zu jedem Index. Das ist, was es macht, du könntest es wahrscheinlich anders umsetzen, aber warum? – alfasin
'1 + 2 + 3 + 4 + ... + (n-2) + (n-1)' ist tatsächlich 'O (n)', aber der Code tut nicht '1 + 2 + 3 + 4 +. .. + (n-2) + (n-1) + n' ... weiter, es ist definitiv * nicht * tun Quadratic ... – alfasin