Мне немного непонятно, о чем меня спрашивают.
Массивы, конечно, O (1), и поэтому я ожидаю, что они правильный ответ.(Эмпирическое правило Брайана: если вы хотите, чтобы что-то было быстрым, то ответ одинаков для всех языков - используйте массив структур.)
Если вам нужно что-то более разреженное, есть .NET Dictionary
и HashSet
классы (которые используют хэши) и типы F # Map
и Set
(которые используют деревья / сравнение).Dictionary
, вероятно, следующая лучшая попытка.
Но, конечно, я ожидаю, что это либо во многом зависит от специфики (плотность, местность / структура доступа, ...), либо это не имеет значения вообще (другие факторы подавляют его).
В конце дня, как для каждого вопроса об эффективности: показатель .