Алгоритмы. Разработка и применение.
Получить книгу!
Получить книгу!
Алгоритмы – это основа программирования, определяющая, каким образом программное обеспечение будет использовать структуры данных.
Из книги вы узнаете базовые принципы построения алгоритмов, основные понятия и определения, изучите структуры данных, а затем перейдете к основным методам построения алгоритмов, неразрешимости и методам решения неразрешимых задач, и, наконец, изучите случайности при проектировании алгоритмов.
Самые сложные темы объясняются на четких и простых примерах, поэтому книга может использоваться как для самостоятельного изучения студентами, так и учеными-исследователями или профессионалами в области компьютерных технологий, которые хотят получить представление о применении тех или иных методов проектирования алгоритмов.
Основные разделы книги:
- Введение. Некоторые типичные задачи. Здесь узнаете некоторые типовые задачи алгоритмизации, а также самые общие принципы проектирования алгоритма.
- Основы анализа алгоритма. Алгоритмы могут быть качественными и некачественными. Качественные алгоритмы, в свою очередь, могут очень сильно отличаться по быстродействию и другим характеристикам. Из этой главы вы узнаете, как выполняется анализ алгоритма на предмет быстродействия и прочих его параметров.
- Графы. Графы - это довольно сложные структуры данных. Без знания алгоритмов работать с графами практически невозможно. В то же время, профессиональный программист рано или поздно сталкивается с необходимостью работы с графами и другими сложными структурами данных. И лучше быть к этому готовым заранее, чтобы не спасовать перед трудной задачей.
- Жадные алгоритмы. Это разновидность алгоритмов. Почему они называются жадными, и где и как лучше всего их использовать (или не использовать) рассказано в этой главе.
- Разделяй и властвуй. Эта поговорка пришла к нам из Древнего Рима. Почему так называется эта глава - узнаете из книги.
- Динамическое программирование. Вот уж где крайне трудно обойтись без знания алгоритмов, так это в динамическом программировании.
- Нахождение потока в сети. Чем дальше в лес, тем больше дров. Нахождение потока в сети (например, непересекающихся путей в графе) - это задача не для слабонервных. Если вы уже сдулись, то вам эта книга не нужна.
- NP-полнота и вычислительная неразрешимость. А вы, наверно, подумали, что самое сложное уже позади? Не тут то было…
- PSPACE: класс задач за пределами NP. Ой-ой-ой…
- Расширение пределов разрешимости. Я уже мало что понимаю...
- Аппроксимирующие алгоритмы. Аппроксимирующий алгоритм - это алгоритм, использующийся для поиска решения отпимизационной задачи. Оптимизационная задача - это задача определения наилучших параметров объектов и их структуры. Жить легче не стало, однако…
- Локальный поиск. Ну хоть что-то более-менее понятное ))) Очень интересная глава.
- Рэндомизированные алгоритмы. Рэндом (random) можно перевести как “случайный, выборочный, произвольный, беспорядочный”. Как это связано с алгоритмами - читайте в этой главе.
Ну как? Почувствовали себя полным идиотом? Я слегка почувствовал )))
Книга действительно очень сложная даже для опытного программиста. Потому что для её понимания надо знать не только программирование, но и высшую математику.
И, тем не менее, я рекомендую прочитать её всем, в том числе и начинающим. Хотя бы для того, чтобы чувствовать себя не полным идиотом, а только слегка )))
Получить книгу!
Получить книгу!