Информация об изменениях

Сообщение Re: Книги Рода Стивенса от 10.04.2016 10:33

Изменено 28.04.2016 14:12 LaptevVV

Мне известны три перевода Рода Стивенса.
Сначала была "Готовые алгоритмы на Бейсике"
Потом практически копипаст с нее: Delphi. Готовые алгоритмы.
Английский оригинал: Ready-to-run Delphi Algorithms.
И наконец, в этом году появился перевод книжки Essential Algorithms: http://www.ozon.ru/context/detail/id/135297188/
Книжки написаны удивительно простым и понятным языком.

По первой книге. Все проги, естественно, на Дельфи.
Сам не проверял, но есть Приложение 1 и приложение 2, где прописан полный список примеров, откуда их брать и как запускать.
В книге 13 глав
1. Основные понятия. Здесь минимальный ликбез про О(). Математики опять же — никакой, логарифмы только...
2. Списки. Сначала под списком понимается динамический массив (как набор элементов),
а потом вводится традиционный связанный список. Операции, естественно.
И много разновидностей связных списков. Например, многосвязный список, который обозван переводчиком "список с потоками"...
А также другие связанные структуры — маленький обзор с картинками.
3. Стеки и очереди. Вся классика. Циклические очереди хорошо расписаны.
Но тут и очереди с приоритетами — элементарное введение, без пирамиды, как упорядоченный список.
И опять же "многопоточные" очереди — очереди с несколькими головами и одним хвостом... Змей Горыныч натуральный...
4. Массивы. Тут разные нестандартные массивы: треугольные, разреженные, сильно разреженные.
5. Рекурсия. Тут классика: факториал, НОД, Фибоначчи, кривые Гильберта и Серпинского.
Но описаны способы устранения рекрсии — хвостовой и в общем случае.
6. Деревья. Вся классика.
Описаны деревья со ссылками (у кого-то встречал термин "прошитые" про такие деревья).
Интересные Q-деревья (quadtree) — описывают пространственные отношения между элементами в пределах какой-либо ограниченной области.
Это определение из книжки.
7. Сбалансированные деревья. Здесь АВЛ и В-деревья.
8. Деревья решений.
Это поиск в игровых деревьях: минимакс и его улучшение (на примере крестиков — ноликов 3х3)
Далее метод ветвей и границ, и эвристические методы полного перебора.
Здесь же сложные задачи: задача о выполнимости, о разбиении, коммивояжера...
9. Сортировки. Ну, тут практически вся классика. Пирамиды здесь тоже есть.
10. Поиск. Здесь, помимо простых, интерполяционный поиск, и следящий поиск.
11. Хеширование. Типовая классика.
12. Сетевые алгоритмы. Они же — алгоритмы на графах. Обходы, пути, остовное дерево, максимальный поток.
13. ООП. Здесь кое-какие паттерны объясняются: фасад, итератор, mvc, visitor (называется контролирующий объект — visitor object) и т.д.

Упражнений нет вообще.
Но в общем, книжка неплохая.

Essential Algorithms
Это уже полноценный учебник. Содержит 19 глав.

Алгоритмы приводятся на понятном англоязычном псевдокоде, похожем на Паскаль и на Бейсик одновременно...
Во всяком случае это — программный псевдокод, а не математический, как у Кормена.
Упражнения и ответы к ним (приложение Б — ~70 страниц).
Приложение 1 и Глоссарий содержат определения и разъяснения огромного количества терминов.
Содержание.
1. Основы алгоритмизации. Здесь объясняется псевдокод и сложность алгоритма (О-нотация). Математики практически нет.
2. Численные алгоритмы. Генерация случайных чисел, НОД, возведение в степень, простые числа, численное интегрирование (в том числе Монте-Карло), нахождение корней (Ньютон)
3. Связанные списки. Почти все, что можно написать о списках.
4. Массивы. Опять же — для начинающих — много интересного.
Мне известны три перевода Рода Стивенса.
Сначала была "Готовые алгоритмы на Бейсике"
Потом практически копипаст с нее: Delphi. Готовые алгоритмы.
Английский оригинал: Ready-to-run Delphi Algorithms.
И наконец, в этом году появился перевод книжки Essential Algorithms: http://www.ozon.ru/context/detail/id/135297188/
Книжки написаны удивительно простым и понятным языком.

По первой книге. Все проги, естественно, на Дельфи.
Сам не проверял, но есть Приложение 1 и приложение 2, где прописан полный список примеров, откуда их брать и как запускать.
В книге 13 глав
1. Основные понятия. Здесь минимальный ликбез про О(). Математики опять же — никакой, логарифмы только...
2. Списки. Сначала под списком понимается динамический массив (как набор элементов),
а потом вводится традиционный связанный список. Операции, естественно.
И много разновидностей связных списков. Например, многосвязный список, который обозван переводчиком "список с потоками"...
А также другие связанные структуры — маленький обзор с картинками.
3. Стеки и очереди. Вся классика. Циклические очереди хорошо расписаны.
Но тут и очереди с приоритетами — элементарное введение, без пирамиды, как упорядоченный список.
И опять же "многопоточные" очереди — очереди с несколькими головами и одним хвостом... Змей Горыныч натуральный...
4. Массивы. Тут разные нестандартные массивы: треугольные, разреженные, сильно разреженные.
5. Рекурсия. Тут классика: факториал, НОД, Фибоначчи, кривые Гильберта и Серпинского.
Но описаны способы устранения рекрсии — хвостовой и в общем случае.
6. Деревья. Вся классика.
Описаны деревья со ссылками (у кого-то встречал термин "прошитые" про такие деревья).
Интересные Q-деревья (quadtree) — описывают пространственные отношения между элементами в пределах какой-либо ограниченной области.
Это определение из книжки.
7. Сбалансированные деревья. Здесь АВЛ и В-деревья.
8. Деревья решений.
Это поиск в игровых деревьях: минимакс и его улучшение (на примере крестиков — ноликов 3х3)
Далее метод ветвей и границ, и эвристические методы полного перебора.
Здесь же сложные задачи: задача о выполнимости, о разбиении, коммивояжера...
9. Сортировки. Ну, тут практически вся классика. Пирамиды здесь тоже есть.
10. Поиск. Здесь, помимо простых, интерполяционный поиск, и следящий поиск.
11. Хеширование. Типовая классика.
12. Сетевые алгоритмы. Они же — алгоритмы на графах. Обходы, пути, остовное дерево, максимальный поток.
13. ООП. Здесь кое-какие паттерны объясняются: фасад, итератор, mvc, visitor (называется контролирующий объект — visitor object) и т.д.

Упражнений нет вообще.
Но в общем, книжка неплохая.

Essential Algorithms
Это уже полноценный учебник. Содержит 19 глав.

Алгоритмы приводятся на понятном англоязычном псевдокоде, похожем на Паскаль и на Бейсик одновременно...
Во всяком случае это — программный псевдокод, а не математический, как у Кормена.
Упражнения и ответы к ним (приложение Б — ~70 страниц).
Приложение 1 и Глоссарий содержат определения и разъяснения огромного количества терминов.
Содержание.
1. Основы алгоритмизации. Здесь объясняется псевдокод и сложность алгоритма (О-нотация). Математики практически нет.
2. Численные алгоритмы. Генерация случайных чисел, НОД, возведение в степень, простые числа, численное интегрирование (в том числе Монте-Карло), нахождение корней (Ньютон)
3. Связанные списки. Почти все, что можно написать о списках.
4. Массивы. Опять же — для начинающих — много интересного.

Мой отзыв на Озоне:

Очень неплохая книга для изучения основ. Написана конкретно для новичков.
Поэтому в самом начале рассматриваются темы, которые обычно отсутствуют в профессиональных учебниках: работа с числами, массивы, списки.
Но в книге есть темы, которые обычно не рассматриваются в книгах по алгоритмам и структурам данных: деревья решений (рассматривается минимакс, метод ветвей и границ, эвристики), криптография (перестановочные шифры, подстановки, блочные шифры, RSA).
Весьма полезна для начинающих глава о рекурсии, где помимо традиционных задач (8 ферзей, обход конем и т.п) рассматривается проблема удаления рекурсии (и хвостовой, и общей).
Есть главы и об алгоритмах на графах, и строковые алгоритмы (не только поиск подстрок, но и вычисление расстояния, и анализ арифметических выражений).
Естественно, есть глава о вычислительной сложности.
И весьма полезна для начинающих глава о параллельных вычислениях — рассмотрены все основы.
В общем, очень рекомендую как первую книгу по алгоритмам и структурам данных.

Второй отзыв на Озоне:

Согласен в Валерием, что книга очень неплохая. По крайней мере, ее стоит почитать-поглядеть. Но ни в коем случае не покупайте ее в переводе от ЭКСМО. Эти друзья испортили все впечатление от книги. Я на эту книгу наткнулся на английском языке. Начал читать и понял, что должен ее купить, чтобы отдать дань уважения автору. Но не за такой же перевод. Я прочитал две главы. И уже во время чтения второй наткнулся на несколько неточностей перевода, которые меняют смысл прочитанного. Ответы к задачам первой главы перепутаны. Вернее зачем-то еще пронумерованы отдельные абзацы в ответах, в итоге их стало больше, чем самих задач. Это здорово запутывает. После этого очень сложно избавиться от мысли, что не сможешь разглядеть очередной косяк переводчика и вообще непонятно, что ждать дальше по ходу чтения.