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

Сообщение от Aetae
Если даты уже отсортированы
тогда можно ещё прикинуть, сколько примерно записей бывает за месяц, и в цикле прибавлять не i++, а i += k. Если набижали на новый месяц, то ищем начало нового месяца, идя от прошлой записи и прибавляя 1 (или идя назад).
Если в среднем M сообщений за месяц, то взяв k = sqrt(M), получим O(N / sqrt(M)) вместо (O(N))

при маленьких М, конечно, толку от этого не будет.. Хотя надо заметить, что при малых M и записей всего очень мало (потому как за 100 лет было всего 1200 месяцев, и оптимизировать нечего). Т.е. М, судя по всему, здоровенное.

Последний раз редактировалось Alexandroppolus, 03.08.2022 в 18:23.
Ответить с цитированием