Comments: |
Очень субъективно. Я бы сказал, программирование сегодня стало настолько широким и расплывчатым понятием, что единого списка книг для всех просто не существует.
Программирование, как и любовь, это одно слово подразумевающее множество разнообразнейших занятий.
(Удалённый комментарий)
Я помню твою запись об этом. (Удалённый комментарий) (Удалённый комментарий)
Ну как бы асимптотика-то не меняется. А так да, HeapSort должен получиться раз в двести-четыреста медленнее квиксорта, в среднем, на достаточно большом массиве.
То есть не 200 и уж точно не 400 раз, это я загнул. Особенно в реальной задаче, с неинлайнутым (и, возможно, достаточно сложно устроенным) компарером, как минимум одиним уровнем индирекции етс. С другой стороны, если тупо сортировать инты, то, пожалуй, раз пятьдесят разницы можно получить. Это много!
SICP можно не только почитать, но и посмотреть - есть видеолекции, которые читали для сотрудников HP. Из кнута мне очень понравилась "конкретная математика"
тяжёлая книжка, мне так и не далась, застрял в начале, где-то после полов/потолков. Но это конечно всё вопрос времени и приоритетов.
Ага. А если вы уже не совсем начинающий, очень полезно подумать, почему он не рассказал о той или иной (кажущейся вам существенной) особенности языка. ... Встречаются Ёроол-Гуй, Олгой-Хорхой и Шай-Хулуд ...
Я года три назад перечитал третий том Кнута и перелистал второй. Но чтобы их читать, надо внимательно прочитать первый.
Короче - книги стоят того... но не всем же это надо по жизни. Вон птички божии - не сеют, не пашут, и Кнута не читали.
Просто когда народ лезет с глупостями на тему как генерировать случайные числа или как тестировать генераторы случайных чисел или там со всякими оценками сортировок... ну с нечитавшими Кнута разговаривать на эти темы имеет мало смысла.
From: (Anonymous) 2007-12-07 11:09 pm
| (Link)
|
Мне всегда казалось, что сила Кнута не в текстах, а задачках Не в том смысле, что основной материалл он выкладывает в задачи, как некоторые авторы продвинутых текстбуков просят доказать многие теоремы. А в том смысле, что большая часть программирования (в смысле инжениринга, а не разработки систем типа "Консультант плюс" или веб-сайтов) требует не очень большой объем базовых знаний -- условно тот же Кормин и немного больше, но гораздо более требовательно к умению находить вывод из нестандартных ситуаций. Плюс "алгоритмическое мышление" вплоть до умения доказывать, что алгоритм плох, находить самые тяжелые сдучаи для данного алгоритма Этим задачки (особенно рейтинг как тяжелые) у Кнута и хороши
Там пишут:
Knuth, SICP, and K&R are the R, S, T, L, N, and E of required programming reading.
Q: Как переводится на американский Sine qua non? A: R, S, T, L, N, E.
Интересно, кто за пределами американской аудитории это поймет?
любой, кто не поленится скопировать строчку в форму поиска и нажать кнопку (Удалённый комментарий)
сикп все равно до сих пор решает, читал просто с упоением =)
Я не знаю хороших моделей многоуровневой памяти.
From: (Anonymous) 2007-12-08 09:26 am
кэши | (Link)
|
весь анализ алгоритмов там не учитывает возможности, что память может быть более и менее важная
Слово "весь" я воспринимаю здесь как полемическое заострение. :) Всё же, с вычислительной моделью, где элементарными операциями являются чтения и запись одного слова в память, иметь дело приходится нечасто.
...в наше время кэшей процессоров, в десятки и сотни раз более быстрых, чем основная память, это обстоятельство оказывается одним из ключевых для анализа алгоритмов
Скорее всего, Вы с этим знакомы, но есть довольно разумная идея строить структуры данных так, чтобы они автоматом работали хорошо (в некотором разумном понимании) с кэшами любых размеров, а следовательно, и со всей иерархией памяти от дисков до кэша первого уровня на процессоре. Для этого, правда, требуется непосредственно управлять размещением объектов в памяти, что не всегда возможно.
Обзоры: http://en.wikipedia.org/wiki/Cache-oblivious_algorithm http://blogs.msdn.com/devdev/archive/2007/06/12/cache-oblivious-data-structures.aspx
Евгений Д.
Странно, что TeX Book Кнута никто не упомянул.
![[User Picture]](https://l-userpic.livejournal.com/58367580/530399) | From: gt 2007-12-08 01:33 pm
| (Link)
|
По слухам, второе издание Кнута (80-е) было на паскале, а не на микс-машине. Я воспитан на первом, мне кажется, микс-машина крайне дурна. Некоторые вещи (сортировка и поиск) у Гарольда Лорина лучше намного. Вместо Танненбаума (мне кажется) лучше книжка аэнбешника Кейслера. Мак-кракен хорош, если забыть про фортран, неплохое введение в чмы (но лучшие чмы у Воеводина). Про лямбду кроме Чёрча есть хорошие книжки (на русском такая красная была начала 80-х) и заумная Барендрегта. И почему-то решётки Скотта пропущены совсем. Ещё David Gries compiler theory. И обязательно Николай Вирт с Эдсгером Дийкстрой.
Edited at 2007-12-08 13:36 (UTC)
From: (Anonymous) 2007-12-09 11:51 pm
| (Link)
|
Нет, Мак-Кракен плох и плох катастрофически, поскольку устарел на 40 лет не только в смысле фактического материала, но и в части расстановки акцентов. (Удалённый комментарий)
![[User Picture]](https://l-userpic.livejournal.com/11158101/1870207) | From: alll 2007-12-10 04:49 pm
Re: в десятки и сотни раз более быстрых, чем основная пам | (Link)
|
Так ведь разделение на быструю-дорогую-маленькую и медленную-дешёвую-большую вроде как ещё с магнитных лент идёт. | |