Comments 10
Да, я тоже очень вдохновилась после этой лекции. Ощутила, что я на самом деле вообще нифига не шарю в структурах и деревьях (хотя до этого была другого мнения) (=
А других источников кроме e-maxx'а нет? А про КД-дерево и иже с ними? (=
А других источников кроме e-maxx'а нет? А про КД-дерево и иже с ними? (=
+1
В начале поста упомянута некая «идея, применимая к задачам другого типа». А, собственно, что за идея?
0
Хотел расписать одну задачу с которой недавно столкнулся, но статья затянулась…
0
Если я не ошибаюсь, такая статья уже была. Именно особенность с предварительным подсчётом сумм и квадратный корень мне запомнились.
Тем не менее, хорошо написано и +1.
Тем не менее, хорошо написано и +1.
0
Возможно Вашь алгоритм можно улучшить, в случае если L>=R. В случае если это условие выплняется, то sqrt суммы для R частично считать не нужно, они уже посчитаны для L.
Кроме того, если бы в статье были приведены примеры Unit тестов то материал был бы более усваиваем.
Кроме того, если бы в статье были приведены примеры Unit тестов то материал был бы более усваиваем.
0
Та же идея применима к спискам с пропусками, если ограничить высоту списка двойкой. В этом случае легко показать, что оптимальным является расстановка узлов высоты два как раз через n1/2 узлов нижнего уровня. Это гарантирует время поиска в списке порядка O(n1/2). Более точно это время оценивается, как 2n1/2. Идею можно развить, если ввести не два уровня, а например, три. Тогда оптимальным будет расположение «высоких» узлов через n1/3 узлов каждого уровня. Этот даст нам время поиска порядка 3n1/3. Если довести эти рассуждения до логического конца, то при k=log2n уровнях (в этом случае получаются минимально возможные подмассивы длины два) получим время поиска равное 2log2n — это кмк оптимальный результат полноценного списка с пропусками. И подозреваю, что такое же время будет у нормального дерева отрезков…
0
Sign up to leave a comment.
Sqrt-декомпозиция (корневая оптимизация)