Я бы выбрал красно-черное дерево или хеш-таблицу.
Операции на красно-черном - это O (log2 (n)).
Если реализация верна, хеш может иметь O (1 + k / n). Если реализация неверна, это может быть так же плохо, как o (k). Если то, что вы пытаетесь сделать, это просто сделать это как можно быстрее, я бы использовал хэш и сделал дополнительную работу. Иначе я бы пошел с красно-черным. Это довольно просто, и вы знаете свое время выполнения.