Rambler's Top100 Service калинин.ru / комментарии / книги /  << 11.08.00 >>

Алгоритмы: построение и анализ

    Иллюстрация
    Обложка книги.
    Обложка книги.

Эту книгу ждали, по-моему, пару лет. При этом ее никто не рекламировал, не предлагал заказать в интернет-магазине до выхода как новое издание "Искусства программирования", и тем не менее, именно этой книги ждали с особенным нетерпением.

Во-первых, ранее она не издавалась на русском языке ("за бугром" она вышла в 1990). Поэтому, конечно же было просто интересно, что в ней содержится, учитывая очень благосклонные отзывы "за границей". Во-вторых, техническим редактором книги является А.Шень, про которого один мой знакомый сказал, что "он плохого переводить не будет". В третьих, книг по алгоритмам, а тем более по их анализу (как заявлено в названии) достаточно мало. Лично я навскидку вспоминаю вообще только пару книг, в которой рассматривался анализ алгоритмов как таковых: Ахо, Хопкрофт, Ульман "Построение и анализ вычислительных алгоритмов" и Кнут "Искусство программирования". Поэтому, когда МЦНМО объявило о подготовке к изданию этой книги, она сразу же стала известной.

Книга разделена на 7 частей:

  • Математические основы анализа алгоритмов.
  • Сортировка и порядковые статистики.
  • Структуры данных.
  • Методы построения и анализа алгоритмов.
  • Более сложные структуры данных.
  • Алгоритмы на графах.
  • Дополнительные главы.

Наличие отдельных частей "Структуры данных" и "Более сложные структуры данных", я думаю, уже должно настораживать. Книга написана... очень подробно. В том смысле, что разжевывается практически все, что в ней есть. Именно из-за этого, она не понравилась нашим специалистам в области computer science --- очень элементарная. При этом количество раcсмотренных алгоритмов в книге (а она достаточно "толстая", порядка 1000 страниц) невелико, у того же Шеня в "Теоремах и задачах" по-моему, не меньше. Правда отрицательные отзывы о книге тоже очень забавные, например, в какой-то конференции видел фразу что книга "хуже, чем Кнут". Смею вас заверить, что такая "отрицательная" оценка стоит очень много и говорит, скорее, именно о том, что книга хорошая, только она несколько не из той категории.

На всякий случай, приведу аннотацию:

  Цитата
 

Книга представляет собой перевод учебника по курсу построение и анализ эффективных алгоритмов, написанного в Массачусетском техническом университете; в ней разрабатываются важнейшие классы быстрых алгоритмов и прием их построения. Изложение подробное и математически строгое. Книгу можно использовать в качестве учебника и справочника; она будет полезна как студентам, так и профессионалам в области computer science и программирования.

Единственные откровенно слабые места в книге --- это вышеприведенная аннотация и название. Потому что по-английски оно звучит как "Introduction to to Algorithms", т.е. "Введение", а уж никак не "построение и анализ". В книге изложены некоторые методы построения алгоритмов, например, метод динамического программирования, в принципе, "на пальцах" показано как надо подходить к оценке алгоритмической сложности... тем не менее, это лишь "Introduction" и ничего более ожидать не стоило.

Вообще говоря, на обложке написано: "Классические учебники", что уже должно наводить на мысли. Да, это действительно учебник для студентов, которые обучаются по курсу "Информатики" (т.е., в смысле "Computer science"), очень подробный и неплохо написанный. Я так думаю, что тот студент, который осилит чтение этой книги, несомненно будет знать почему быстрая сортировка "в худшем случае n2", так как именно такие вещи традиционно трудно доходят за время занятий.

Насколько я понимаю, книгу все еще можно купить в МЦНМО, причем стоит она там несколько дешевле, чем в остальных местах (по-моему, рублей 300). Но, на самом деле, более важно другое --- я туда поехал из-за того, что в остальных магазинах, торгующих технической литературой ее не было (например, в Библио-Глобусе).

Резюме

Не стоит ожидать от этой книги многого. В своем качестве учебника она, наверное, хороша, но в качестве справочника (как это рекомендуют издатели) ее использовать затруднительно. Тем не менее, сам я ее прочитал (или пролистал, не знаю как это правильнее назвать) с... хм, удовольствием. Много иллюстраций и пояснений, большое количество упражнений.


Версия для печати


  Ссылки по теме:
http://www.mccme.ru
   Официальный сайт Московского Центра Непрерывного Математического Обучения (МЦНМО), издавшего эту книгу.
  Рядом в разделе:
C++: библиотека программиста (16.08.00)
   Первая глава этой книги так и называется: "Зачем нужна еще одна книга о C++?" и начинается со следующих слов: По последним...   >>>>
Мифический человеко-месяц (05.08.00)
   В принципе, эта книга для "ветеранов программирования" в комментариях не нуждается --- в свое время ее первое издание было очень популярно....   >>>>
  Рядом по дате:
Виртуальный конструктор (12.08.00)
   Перелистывая архив сообщений из конференции SU.C_CPP, натолкнулся на любопытное письмо, которое решил поместить к себе на страничку. Автор --- опять Alexander...   >>>>
Преобразование XML при помощи XSL (11.08.00)
   Одна из самых частых операций, которую требуется произвести с XML-документом, это показать его. Хочется предупредить сразу, что на этот раз я...   >>>>
  Содержание:
Заглавная страница
Мой блог
Мое резюме
Дайджест
Программирование
   C&C++
Сети
Unix
Алгоритмы
Оптимизация
Соревнования
Отвлеченно
XML
TeX
Просто так
Студенческое
Туризм
  Байки
Фотографии
Комментарии
   Книги
Web-ресурсы
Фильмы
Интернет
Программное обеспечение
Жизнь
Благодарности
Форум
Хронология
 
  В этом разделе:
High Perfomance Computing, second edition. (05.07.01)
   Название книги можно перевести как "Высокопроизводительные вычисления" и эта тематика в русскоязычной литературе не освещена совсем. Традиционно считается, что самой важной...   >>>>
Плагиат (19.06.01)
   В последнее время мне стало казаться, что с моим сайтом что-то не в порядке. Вроде, текст есть, живые люди тоже иногда...   >>>>
TCP/IP Illustrated, volume I. The Protocols (22.04.01)
   И опять, книга, о которой мне хочется рассказать, насколько мне известно, отсутствует в русском переводе. Тем не менее, в разделе сетевого...   >>>>
Decline and Fall of the American Programmer (28.02.01)
   Эдвард Йордон является одним из самых известных специалистов в области создания больших программных систем. Широко известна его нотация, предназначенная для структурного...   >>>>
Unix internals: the new frontiers (03.12.00)
   Хочу сразу же предупредить, что эта книга, насколько мне известно, в переводе на русский язык не существует, поэтому прошу прощения, если...   >>>>
Операционная система Unix (31.10.00)
   Unix получил очень широкое распространение в современном компьютерном мире. При этом, даже если большая часть домашних компьютеров работает под управлением операционной...   >>>>
Язык UML, рукводство пользователя (29.09.00)
   UML (Unified Modeling Language, унифицированный язык моделирования) является еще одной популярной аббревиатурой, которой очень часто пользуются, не понимая того, что за...   >>>>
Содержание раздела полностью...
   Примерно в тоже время
Виртуальный конструктор (12.08.00)
   Перелистывая архив сообщений из конференции SU.C_CPP, натолкнулся на любопытное письмо, которое решил поместить к себе на страничку. Автор --- опять Alexander...   >>>>
Преобразование XML при помощи XSL (11.08.00)
   Одна из самых частых операций, которую требуется произвести с XML-документом, это показать его. Хочется предупредить сразу, что на этот раз я...   >>>>
Хронология полностью...
   Содержание
Заглавная страница
Мой блог
Мое резюме
Дайджест
Программирование
  C&C++
Сети
Unix
Алгоритмы
Оптимизация
Соревнования
Отвлеченно
XML
TeX
Туризм
  Байки
Фотографии
Комментарии
  Книги
Web-ресурсы
Фильмы
Интернет
Программное обеспечение
Жизнь
Студенческое
Просто так
Благодарности
Форум
Хронология
© 2000-2008, Andrey L. Kalinin
mailto:andrey@kalinin.ru
Rambler's Top100