Ответ 1
Я думаю, что лучшая книга Введение в алгоритмы от Cormen, Leiserson, Rivest и Stein.
Вот на Amazon.
Есть ли хороший ресурс (книга, ссылка, веб-сайт, приложение...), в котором объясняется, как вычислить временную сложность алгоритма?
Потому что трудно сделать вещи конкретными в моем сознании. Иногда речь идет об итерации с временной сложностью lg n; а затем в соответствии с другим циклом он становится n.lg n; и иногда они используют большие обозначения омеги, чтобы выразить это, иногда большие-о и т.д.
Эти вещи довольно абстрактны для меня. Итак, мне нужен ресурс, который имеет хорошее объяснение и множество примеров, чтобы заставить меня посмотреть, что происходит.
Надеюсь, я четко объяснил свою проблему. Я совершенно уверен, что все, кто только начал изучать алгоритмы, также имеют ту же проблему со мной. Таким образом, возможно, эти опытные ребята также могут поделиться своим опытом с нами. Спасибо...
Я думаю, что лучшая книга Введение в алгоритмы от Cormen, Leiserson, Rivest и Stein.
Вот на Amazon.
Ребята, вы все рекомендуете книги теории сложности сложности - Arora и Barak содержат всевозможные вещи, такие как PCP, Interactive Proofs, Quantum Computing и темы на графиках Expander - то, что большинство программистов/разработчиков программного обеспечения никогда не слышали о или когда-либо будет использоваться. Papdimitriou находится в той же категории. Кнуту нечего читать (и я был главным математиком в CS/Math) и дает нулевую интуицию о том, как все работает.
Если вы хотите простой способ вычислить время автономной работы и получить вкус анализа, попробуйте первую главу или около того Клейнберга и Тардоса "Дизайн и анализ алгоритмов", который держит вас за руку с помощью основ, а затем вы можете работать над гораздо более сложными проблемами.
Я прочитал Christos Papadimitriou Вычислительная сложность в университете и действительно наслаждался этим. Это нелегко, книга длинная, но она хорошо написана (т.е. Понятна и подходит для самообучения), и в ней содержится много полезных знаний, гораздо больше, чем просто "как определить временную сложность алгоритма х",.
Я согласен, что Введение в алгоритмы - хорошая книга. Для получения более подробных инструкций, например. как решить рекуррентные отношения см. Knuth Конкретная математика. Хорошая книга по самой вычислительной сложности - это Papadimitriou. Но эта последняя книга может быть слишком тщательной, если вы хотите рассчитать сложность данных алгоритмов.
Краткий обзор о значении большой O/-Omega:
Обратите внимание, что при использовании этих обозначений вы обычно говорите о наихудшем времени работы алгоритма.
Теория сложности вычислений в Википедии есть список ссылок, включая ссылку на проект книги "Вычислительная сложность: современный подход" , учебник Санджива Ароры и Боаза Барака, Press Cambridge University Press.
Классический набор книг на эту тему - это Knuth Art of Computer Programming. Они тяжелы в теории и формальных доказательствах, поэтому расчистите свое исчисление, прежде чем приступать к ним.
Курс в Дискретная математика иногда предоставляется перед Введение в Алгоритмы.