Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Организация стека


Автор: Isaev 6.6.2013, 18:17
Есть проект, требуется оптимизировать по скорости
основные операции - быстрое и очень частое(отнимает основное время в работе алгоритма... даже уберал удаление вообще, ориентируясь по индексу на последний элемент, чтобы на него не тратилось время, а в конце программы подчищал всю конструкцию) добавление/удаление элемента(записи/объекта) в/из стека... Стек тут наиболее подходит по логике, т.к. на любом шаге интересен только текущий элемент и необходим откат на предыдущий
Нашёл много реализаций стеков на Delphi, но в большинстве случаев пишут, что примеры очень не оптимизированы и приведены исключительно с целях обучения (Вот для чего учить не эффективным приёмам вообще не понятно! smile )

Больше всего понравилась реализация из книги "Фундаментальные алгоритмы" Бакнелла, но там же написано, что в большинстве случаев правильное использование стандартного класса TList намного эффектифнее изобретения очередного велосипеда.

Вот я в смятении, создать велосипед? научиться "правильно" использовать TList или найти что-то готовое, доведённое до ума?

1. Если делать своё, вопрос: на основе связных списков или на основе массива(это думаю будет быстрее)
2. Если кто имеет что-то своё, достойное уважения, был бы рад изучить
3. Если TList всё же лучшее решение(в чём я очень сомневаюсь), то покажите как его для данной цели оптимально использовать

Автор: northener 7.6.2013, 01:05
Цитата(Isaev @  6.6.2013,  18:17 Найти цитируемый пост)
Вот я в смятении, создать велосипед? научиться "правильно" использовать TList или найти что-то готовое, доведённое до ума?

Только не "готовое доведённое до ума", если это на ваша задача!
Алгоритмы, в целом давно "оптимизированы". Но этих алгоритмов - туева хуча. И какой из них будет лучшим в вашей задаче никому не известно.
Нужно пробовать и сравнивать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)