Если вы хотите условный запрос «И», попробуйте следующее:
Comment.
where(:created_at => time_range).
where("user_id is not in (?)",[user_ids])
, который будет производить SQL, например: select ... where ... AND ...
, если вы хотите, чтобы предложение WEHRE более сложное, например : where ( a AND b) OR (c AND d)
, вы должны сами объединить условия в предложение, например
Comment.where("(a AND b ) OR (c AND d)")
Двоичные кучи слишком негибкие, чтобы превзойти логарифмическую сложность. Биномиальные кучи просто обеспечивают более эффективную операцию соединения.
Другие кучи с хорошей производительностью ключа уменьшения - это кучи пар и 2-3 кучи
Биномиальные кучи занимают время o (log n) для операций уменьшения клавиш! Разве это не медленнее, чем кучи Фибоначчи?
Фактически, с кучей Фибоначчи, операция клавиши увеличения аналогична клавише уменьшения. ИМХО, операцию «ключ уменьшения» принято называть только традицией, потому что она используется в некоторых алгоритмах. Но реализация кучи Фибоначчи позволяет и то, и другое.