Если у вас есть SortedDictionary
или SortedList
, вы можете использовать .First()
(или dict.Keys[0]
для SortedList
). В противном случае вы можете сделать:
dict[dict.Keys.Min()]
, что в целомВремя O (N) (поскольку Min () должен выполнять итерацию всей коллекции)
.First()
, вероятно, будет иметь время O (1) для SortedList и O (log n) для SortedDictionary.
Для вставки и удаления используется время O (log N) для SortedDictionary и может быть до O (N) для SortedList.Обратите внимание, что если вы используете словарь для поддержки своей «очереди приоритетов», у вас не может быть двух элементов с одинаковым приоритетом.
Я не думаю, что у каждого класса есть специальная реализация для Last, поэтому есливам нужен ключ с самым высоким значением, вам, вероятно, следует использовать SortedList, поскольку вы можете сделать dict.Keys[dict.Count-1]
.Если вы хотите, чтобы только был наивысшим (а не наименьшим), вы можете использовать Comparer для сортировки в этом порядке и использовать First.