В настоящее время я учусь на старшекурсника CS в курсе структур данных.В течение семестра мы узнали о нотации big-O, и в одном задании нам пришлось выписать нотацию big-O суммирования чисел 1 + 2 + 3 + ... + n.Я подумал, что в простейшем методе вы будете циклически переходить от 1 к n, и на каждой итерации добавляете i к сумме, так что казалось, что это будет O (n) время.
Я тожесознавая, что это конкретное суммирование может быть выражено как (n (n + 1)) / 2 как более прямой способ получить ответ.
Мой профессор настаивает на том, что в обоих случаях временная сложность равна O (n^ 2), и я переписывался с ним по электронной почте в надежде получить лучшее объяснение, но он в основном посылает один и тот же ответ каждый раз.
Я чувствую, что, должно быть, неправильно понимаю цель «большого» впервое место.Даже когда я реализую эти 2 метода нахождения суммы в программе и времени выполнения, время метода цикла, по-видимому, линейно увеличивается в зависимости от размера n, а во втором методе это занимает столько же времени, скольконезависимо от того, насколько велико n, потому что в этом случае не происходит итераций.
Может кто-нибудь помочь мне понять, почему это все равно будет O (n ^ 2)?