Если вы считаете, что скорость решения той или иной задачи зависит, в первую очередь, от мощности компьютера, на котором она решается, то эта книга станет для вас откровением с самой первой страницы. Вы узнаете, что наибольший вклад в производительность программы вносят правильно выбранный алгоритм и его реализация в виде компьютерной программы. Выбор подходящего алгоритма среди массы других, способных решить вашу задачу, - дело не из самых простых, и этому вы тоже научитесь в данной книге. В новом издании описано множество алгоритмов для решения задач из самых разных областей, и вы сможете выбрать и реализовать наиболее подходящий для ваших задач алгоритм. Здесь даже совершенно незнакомый с математикой читатель найдет все, что нужно для понимания и анализа производительности алгоритма.
Написанная профессионалами в своей области, книга достойна занять место на книжной полке любого практикующего программиста.
Эта книга потрясающая по трем причинам: в ней легко найти нужные алгоритмы и структуры данных; стиль изложения материала - скорее разговорный, чем академический; внимание читателя постоянно акцентируется на сравнительном анализе производительности алгоритмов. Если вы живете в реальном мире, эта книга навсегда изменит ваш способ использования структур данных.
Ричард Резник, директор GQ Life Science
Для создания надежного программного обеспечения необходимы эффективные алгоритмы, но программисты редко представляют себе весь спектр алгоритмов для решения своих задач.
В данном обновленном издании описываются существующие алгоритмы для решения различных задач. Оно помогает выбрать и реализовать алгоритм, наиболее подходящий для ваших задач, при этом обеспечивая достаточное математическое обоснование для понимания и анализа производительности алгоритма.
Будучи акцентированной на приложениях, а не на теории, эта книга основана на строгих принципах, включая документированные решения реальных задач на разных языках программирования. В это издание добавлены десяток новых алгоритмов, реализованных на языке Python, в том числе реализация диаграмм Вороного, а также новая глава о пространственных древовидных структурах, таких как R-деревья и Quadtrees.
В этой книге вы научитесь:
Решать новые задачи и повышать эффективность имеющихся решений
Быстро находить алгоритмы для решения своих задач и выбирать наиболее подходящие
Находить решения на языках программирования C, C++, Java, Python с помощью рекомендаций из книги
Оценивать производительность алгоритмов и создавать условия для достижения максимальной эффективности
Использовать наиболее подходящие структуры данных для повышения эффективности алгоритмов.
Дополнительные материалы: