Я знаю, что могу использовать Словарь
и получить произвольный элемент за O (1) раз.
Я знаю, что могу получить следующий по величине ( или самый низкий) элемент в SortedDictionary
за время O (1). Но что, если бы я хотел удалить первое значение (на основе TKey
' s IComparable
) в SortedDictionary
?
Могу ли я использовать метод .First ()
для получения наименьшего ключа? А в чем его сложность? Будет ли он работать за O (1), O (log n) или O (n) время?
Подходит ли для этого SortedDictionary
структура данных?
Примечание. Пример использования - это своего рода приоритетная очередь для бедняков или упорядоченная очередь. Для этого не разрешается использовать открытый исходный код (код должен быть написан с нуля или уже в среде .NET 3.5).