amarao: (Default)
[personal profile] amarao
Выписать попугаи бенчмарка (число тиков/операций) для 10, 100, 1000 ... 100000 элементов.

Выписать гипотезы:

тиков/элементов = O(n)
тиков/(элементов*элементов) = O(n2)
тиков/(элементов * ln(элементов) = O(n*log n)

А дальше смотрится на колонку с результатом, какой ближе всего похож. Например, у меня получилась такая колонка результатов:

 

195.5
15.8081
3.006889
1.86123681
1.82581181

Видно, что сходится к 1.86 (10000 и 100000 элементов). Увы, это колонка из квадратичной сложности.

(Более того, насколько я знаю, примерно так сложность алгоритма определяется и в теоретическом смысле - смотрится, какая функция его ограничивает сверху/снизу в пределе). Тут мы отношения в пределе заменяем просто практическими наблюдениями.

(И да, я всё ещё не закончил с max-segments). Оказывается, я ошибся в основной части алгоритма, а не в сложности хранения максимумов. Я заменил все операции с максимумами на тривиальные, и сложность не поменялась...

... упс, это у меня бенчмарк случайно сделал worst case. При random картинка меняется... У меня получается, чистый n log n.

Date: 2022-12-05 02:04 pm (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

Упражнение: Определить сложность алгоритма определения сложности алгоритма.

Profile

amarao: (Default)
amarao

February 2026

S M T W T F S
123456 7
8910111213 14
15161718192021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 06:46 pm
Powered by Dreamwidth Studios