На этом уроке мы сравним эффективность использования ArrayList, List<> и простого массива. Победителем окажется типизированная коллекция List<>. Очень интеренсо сравнивать эффективность, нам в этом поможет флагманский класс Stopwatch.
Дата отправки отчёта:
15 апреля 2016 г.
Задание выполнено: за
20 мин.
Чему научился:
Сoздaл три отдeльныe фyнкции List0(), List1(), List2(), которые реализуют соответственно базовый массив, ArrayList и типизированный список List<T>.
Что было сложным:
Ничего.
Комментарии:
В своем случае я я выбрал такой набор операций: for (int i = 0; i < length; i++) al.Add(length - i); В общем случаем я заполняю массив / коллекцию по спадению от 1 000 000 до 1. Потом вызываю метод сортировки Sort() или Array.Sort(T[] array), который работает с худшим вариантом для сортировки, потому, что ему нужно полностью переставить все элементы в обратном порядке. И измеряю время которое затрачивается на это. Результаты показывают, что на сортировку типизированного списка List<T> затрачивается не много больше времени, чем для обычного массива (и учтите, что при добавлении элементов в список он часто увеличивал свою емкость). А коллекция ArrayList ужасно проигрывает по времени всем. Результаты представлены на 1 скриншоте. Во 2м случае тестировки я немного выровнял шансы и указывал при инициализации коллекций емкость в 1 000 000 элементов. Результаты тестировки представлены на 2м скриншоте.
Научился: просто поэксперементировал с базовами типами, очевидно, что самое быстрое это массив, потом типизированый список и самый меделенный, но универсальный ArrayList
Научился: Научился вычислять скорость выполнения операций и сравнивать их между List, Array и ArrayList, как я понял здесь затрагивается тема (О) Большого из теории алгоритмов Трудности: Сложностей не возникло