Aug. 16th, 2012

metaclass: (Default)
По мотивам: http://tonsky.livejournal.com/266027.html
Часто ли нужно найти последний элемент последовательности?

Впрочем, я не очень понимаю, причем тут полиморфизм к оптимизации last для векторов - по-моему, другое имя для метода работающего O(1) для конкретной реализации (вектор) вместо O(n) для произвольных последовательностей - это вполне разумная идея.

Рассуждать об производительности алгоритма гораздо проще, зная, что вызов всегда отрабатывает за известное время, а не "в зависимости от того, что за реализацию мы туда передали".
По-моему, очевидно, что не нужно делать обобщенную реализацию, например quicksort, передавая ей абстракцию "последовательность"+"функция получения n-ного элемента", потому что единственный вариант, в котором это работает - мутабельный массив с O(1) для доступа и замены элемента. Соответственно и алгоритмы, использующие last обобщать и надеятся на оптимальную реализацию в некотором роде бессмысленно.
metaclass: (Default)
http://ic.pics.livejournal.com/belnetmon/4964741/114317/original.jpg
Интересно, нельзя ли где нить заказать изготовление его копии в уменьшенном масштабе, поставить на работе перед монитором.
metaclass: (Default)
Пост http://victorgr.livejournal.com/502847.html напомнил одну штуку.

Я ни разу не читал ни одной книжки сугубо по алгоритмам. Все алгоритмы, которые помню, знаю либо потому, что использую их каждый день, либо потому что были когда-то нужны и я их реализовывал самостоятельно, либо потому, что мне про них рассказали ЖЖ-френды, либо потому что они интересно реализуются на функциональных языках и их используют в качестве примеров.

Если по хорошему, то надо бы это дело поправить. Хотя бы для того, чтобы при необходимости реализовать что-то были базовые строительные блоки в памяти - тогда проще найти нужную ассоциацию или аналогию.
Но вообще 99% моих задач - это отчетность, вся производительность которой упирается в скорость работы БД (а алгоритмы, используемые в БД, я как раз помню лучше других), CRUD, который упирается в различные вариации на тему ORM и "как показать пользователю объект для редактирования наиболее удобным образом", или же интеграция с разного рода кромешной индусятиной, где знание алгоритмов не нужно, зато нужно умение чинить баги по фотографии.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 9th, 2025 04:10 am
Powered by Dreamwidth Studios