Ich lerne gerade über die Zeit Komplexität, hier ist Teil des Codes IZeit Komplexität der Programme
for (int i = 1; i <= N; i++)
for (int j = 1; j <= N; j++)
{
// Spread Peace
}
klar, dass die oben ein geschrieben habe, ist von O (N^2) Komplexität und sein scheint (für N == 1e6
) für immer laufen. Hier
Sekunden ist Stück Code
for (int i = 1; i <= N; i++)
for (int j = i; j <= N; j++)
{
// Money is Everything
}
die obige ist auch O (N^2) - N * (N + 1)/2 Komplexität auch immer ausgeführt wird, aber dieser Code:
for (int i = 1; i <= N; i++)
for (int j = i; j <= N; j += i)
{
// Be my GirlFriend
}
führt nur innerhalb einer Sekunde. ich bin nicht in der Lage seine Zeitkomplexität abzuleiten, warum dies so schnell? Was ist die Schätzung für N == 1e6
?
ich Ihnen vorschlagen zu lesen http://stackoverflow.com/questions/487258/what-is -a-plain-Englisch-Erklärung-von-Big-O-Notation und verstehen Sie die Bedeutung des Symbols und was es bezeichnet.Es wird auch Ihre Zweifel lösen. – Netham