Dictionary.OrderBy или SortedDictionary - бързина?
Има ли разлика в бързината на изпълнение на програмата ако се използва Dictionary<K, V> и накрая се сортиса с .OrderBy(x => x.Кey) в сравнение с направо готовия SortedDictionary<K, V> ?
В .NET има две основни имплементации на интерфейса: Dictionary<K, V> и SortedDictionary<K, V>. SortedDictionary представлява имплементация с балансирано дърво, а Dictionary – имплементация с хеш-таблица.
Трябва да се подчертае обаче, че пазенето на ключовете сортирани идва със своята цена. Търсенето на елементите с балансирани дървета е по-бавна (сложност О(log n)) от работата с хеш-таблици O(1). По тази причина, ако няма специални изисквания за наредба на ключовете, за предпочитане е да се използва Dictionary<K, V>.