среда, 17 июля 2013 г.

Коллекции в C#

В свете постов про коллекции в Java решил сделать табличку с асимптотической оценкой производительности для C#.
Добавление в конец Удаление с конца Вставка в середину Удаление с середины Случайный доступ Последовательный доступ Поиск элемента
Array O(n) O(n) O(n) O(n) O(1) O(1) O(n)
List<T> Лучший случай: O(1); худший: O(n) O(1) O(n) O(n) O(1) O(1) O(n)
Collection<T> Лучший случай: O(1); худший: O(n) O(1) O(n) O(n) O(1) O(1) O(n)
LinkedList<T> O(1) O(1) O(1) O(1) O(n) O(1) O(n)
Stack<T> Лучший случай: O(1); худший O(n) O(1) N/A N/A N/A N/A N/A
Queue<T> Лучший случай: O(1); худший: O(n) O(1) N/A N/A N/A N/A N/A
Dictionary<K,T> Лучший случай: O(1); худший: O(n) O(1) Лучший случай: O(1); худший: O(n) O(1) O(1) O(1) O(1)
Таблица взята отсюда: http://xbox.create.msdn.com/downloads/?id=123&filename=DataStructures_CheatSheet.doc. Там есть еще заметки, когда что подходит, но из асимптотических оценок всё и так ясно. Практически.

Комментариев нет:

Отправить комментарий