Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 03.08.2022, 19:55
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Сообщение от voraa Посмотреть сообщение
В среднем M, но в каком то одном особенном 1 обращение. Как тогда k прибавлять?
Это как раз тот кейс, когда выскочили на один из следующих месяцев.

Тогда мы просто обходим перепрыгнутый отрезок пошагово, и подбираем все первые числа месяцев, которые на нем оказались.
Ответить с цитированием
  #12 (permalink)  
Старый 03.08.2022, 20:42
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

пусть на месяц приходится (в среднем) М записей.

тогда если обходить подневно, то на один месяц будет М проверок.

если применить мою оптимизацию однократно, то будет M^(1/2) больших прыжков длиной M^(1/2), и один неудачный отрезок тоже длиной M^(1/2), который идем по дням.
итого 2 * M^(1/2) проверок.

но можно пойти дальше и сделать 3 "слоя": на первом прыгать через M^(2/3), на втором - через M^(1/3) внутри неудачного отрезка.
итого выходит уже 3 * M^(1/3) проверок, то есть при М = 1000000 всего 300 проверок на месяц. Недурственно.
Ответить с цитированием
  #13 (permalink)  
Старый 03.08.2022, 21:17
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

Ну и конечно, если месяцев совсем мало, можно просто найти их границы двоичным поиском.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать свою функцию из «чужого» кода в Java Script, не переписывая «чужой» код? korobochkin Библиотеки/Тулкиты/Фреймворки 2 19.07.2014 16:17
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Расширение для Safari. Как вызвать функцию из popover в global page? housewm Opera, Safari и др. 0 21.12.2013 06:07
Flot Как передать переменную в функцию отрисовки точки на графике Ren jQuery 0 20.06.2012 14:16
как вызвать функцию название которой находиться в строке dark Общие вопросы Javascript 3 14.10.2009 13:02