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