Книга «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих». Книги алгоритм


6 книг по алгоритмам для программиста %%sep%%%%sitename%%

6 книг по алгоритмам, которые должен прочесть каждый программист

Сегодня я расскажу вам, о 6-ти книгах, которые должен прочесть каждый программист. Алгоритмы важны для каждого программиста, ведь нет ни одной вещи, которую вы бы делали не по алгоритму.

Алгоритм — набор инструкций, описывающих порядок действий исполнителя для достижения некоторого результата.

Подборка книг абсолютно бесплатна и каждый сможет найти и скачать ту книгу, которая его заинтересовала без лишних проблем.

Конечно, я остаюсь при своём мнении, что книги стоит читать в бумажном виде. Для меня это удобнее и увлекательней, не смотря на очевидные минусы такого варианта.

6 книг по алгоритмам для программиста

Стивен С. Скиена – Алгоритмы. Руководство по разработке

“Руководство по разработке” – справочник по разработке производительных алгоритмов. Первая часть рассказывает о базовых понятиях, анализ алгоритмов, структуры данных, даст представление об основных типах алгоритмов.

Во второй части собран перечень популярных алгоритмических задач с их программной реализацией. “Руководство по разработке” будет полезна как настольная книга для программиста и как справочник для студентов IT-специальностей.

 

 

Генри С. Уоррен мл. – Алгоритмические трюки для программистов.

Книга “Алгоритмические трюки для программистов” позволит повысить квалификацию профессиональному программисту, но при этом книга будет понятна и чрезвычайно полезна даже начинающему и даже студенту, тем более что в новом издании появилась масса упражнений, интересных как с теоретической, так и с практической точки зрения.

 

 

 

 

 

Джордж Хайнеман, Гари Поллис, Стэнли Селков – Алгоритмы. Справочник с примерами на C, C++, Java и Python

Даже если вы плохо знакомы с математикой, эта книга поможет вам научиться анализировать производительность алгоритмов. Книга написана таким образом, что в ней просто найти необходимые данные, а главное – она написана понятным языком.

 

 

 

 

 

 

Роберт Седжвик – Фундаментальные алгоритмы на С++.Часть 1-4 – Часть 5

Роберт Седжвик – известный прогаммист. Кроме того, он руководит Adobe Systems и занимается исследованиями в IRIA, IDA и Xerox. В этом пособии автор делится собственными исследованиями фундаментальных алгоритмов и классических доктрин. В книге содержится множество моделей алгоритмов на C++, теория и практические задания.

Продолжение «Фундаментальных алгоритмов» от Роберта Седжвика. Эта книга подробно рассказывает о фундаментальных алгоритмах на графах. В книге вас ждет большое количество математических концепций, реализованных в виде кода. Особое внимание в этой части уделяется теории графов.

 

 

 

Сергей Панасенко – Алгоритмы шифрования. Специальный справочник

Как понятно из названия, в «Справочнике» речь пойдет о криптографических алгоритмах. Автор рассматривает алгоритмы шифрования и их классификацию, рассказывает о блочном симметричном шифровании. В книге приводится множество примеров алгоритмов, описывается их структура, плюсы и минусы. Книга написана для ИТ-специалистов, студентов и преподавателей IT-специальностей.

 

 

 

 

 

6 книг по алгоритмам для программиста – почему они?

Несмотря на то, что в данной подборке представлены книги не самого нового образца, некоторые из них 2009-11 годов. Это не меняет того факта, что они были и остаются фундаментальными для каждого программиста. Представленные 6 книг как можно лучше раскрывают важность алгоритмов на множестве как теоретический, так и практических заданий.

Поделиться ссылкой:

www.make-info.com

Книга «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих»

Алгоритмы — это всего лишь пошаговые алгоритмы решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузиться в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время?

Откройте великолепно иллюстрированную книгу, и вы сразу поймете, что алгоритмы — это просто. А грокать алгоритмы — это веселое и увлекательное занятие.

О книге

Я (Адитья Бхаргава) прежде всего стремился к тому, чтобы книга легко читалась. Я избегаю неожиданных поворотов; каждый раз, когда в книге упоминается новая концепция, я либо объясняю ее сразу, либо говорю, где буду объяснять. Основные концепции подкрепляются упражнениями и повторными объяснениями, чтобы вы могли проверить свои предположения и убедиться в том, что не потеряли нить изложения.

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

Содержимое книги было тщательно продумано. Нет смысла писать книгу с описанием всех алгоритмов сортировки — для этого есть такие источники, как Википедия и Khan Academy. Все алгоритмы, описанные в книге, имеют практическую ценность. Я применял их в своей работе программиста, и они закладывают хорошую основу для изучения более сложных тем.

Структура книги

В первых трех главах закладываются основы:

Глава 1 — вы изучите свой первый нетривиальный алгоритм: бинарный поиск. Также здесь рассматриваются основы анализа скорости алгоритмов с применением «O-большое». Эта запись часто используется в книге для описания относительной быстроты выполнения алгоритмов.

Глава 2 — вы познакомитесь с двумя основополагающими структурами данных: массивами и связанными списками. Эти структуры данных часто встречаются в книге и используются для создания более сложных структур данных, например хеш-таблиц (глава 5).

Глава 3 — вы узнаете о рекурсии — удобном приеме, используемом многими алгоритмами (например алгоритмом быстрой сортировки, о котором рассказано в главе 4).

По моему опыту, темы «O-большое» и рекурсии сложны для новичков, поэтому в этих разделах я снижаю темп изложения и привожу более подробные объяснения. В оставшейся части книги представлены алгоритмы, часто применяемые в разных областях.

Методы решения задач рассматриваются в главах 4, 8 и 9. Если вы столкнулись со сложной задачей и не знаете, как эффективно ее решить, воспользуйтесь стратегией «разделяй и властвуй» (глава 4) или методом динамического программирования (глава 9). А если вы поняли, что эффективного решения не существует, попробуйте получить приближенный ответ с использованием жадного алгоритма (глава 8).

Хеш-таблицы рассматриваются в главе 5. Хеш-таблицы — исключительно полезная структура данных, предназначенная для хранения пар ключей и значений (например имени человека и адреса электронной почты или имени пользователя и пароля). Трудно переоценить практическую полезность хеш-таблиц. Приступая к решению задачи, я обычно прежде всего задаю себе два вопроса: можно ли здесь воспользоваться хеш-таблицей и можно ли смоделировать задачу в виде графа.

Алгоритмы графов рассматриваются в главах 6 и 7. Графы используются для моделирования сетей: социальных, дорожных, нейронных или любых других совокупностей связей. Поиск в ширину (глава 6) и алгоритм Дейкстры (глава 7) предназначены для поиска кратчайшего расстояния между двумя точками сети: с их помощью можно вычислить кратчайший маршрут к точке назначения или количество промежуточных знакомых у двух людей в социальной сети.

Алгоритм k ближайших соседей рассматривается в главе 10. Это простой алгоритм машинного обучения; с его помощью можно построить рекомендательную систему, механизм оптического распознавания текста, систему прогнозирования курсов акций — словом, всего, что требует прогнозирования значений («Мы думаем, что Адит поставит этому фильму 4 звезды») или классификации объектов («Это буква Q»).

Следующий шаг: в главе 11 представлены 10 алгоритмов, которые хорошо подойдут для дальнейшего изучения темы.

Для кого предназначена эта книга

Эта книга предназначена для читателей, которые владеют азами программирования и хотят разобраться в алгоритмах. Может быть, вы уже столкнулись с задачей программирования и пытаетесь найти алгоритмическое решение.

А может, вы хотите понять, где вам могут пригодиться алгоритмы. Ниже приведен короткий и неполный список людей, которым может пригодиться книга:

— программисты-самоучки; — студенты, начавшие изучать программирование; — выпускники, желающие освежить память; — специалисты по физике/математике/другим дисциплинам, интересующиеся программированием.

Об авторе

Адитья Бхаргава работает программистом в Etsy, интернет-рынке авторских работ. Он получил степень магистра по информатике в Чикагском университете и ведет популярный иллюстрированный технический блог adit.io.

» Более подробно с книгой можно ознакомиться на сайте издательства » Оглавление » Отрывок

Для Хаброжителей скидка 25% по купону — Алгоритмы

habr.com

разработка и применение. Классика Computer Science» / Блог компании Издательский дом «Питер» / Хабр

Привет, Хаброжители! У нас вышла новинка:

Впервые на русском языке выходит одна из самых авторитетных книг по разработке и использованию алгоритмов. Алгоритмы — это основа программирования, определяющая, каким образом программное обеспечение будет использовать структуры данных.

Вы познакомитесь с базовыми аспектами построения алгоритмов, основными понятиями и определениями, структурами данных, затем перейдете к основным методам построения алгоритмов, неразрешимости и методам решения неразрешимых задач, и, наконец, изучите рандомизацию при проектировании алгоритмов. Самые сложные темы объясняются на четких и простых примерах, поэтому книга может использоваться как для самостоятельного изучения студентами, так и учеными-исследователями или профессионалами в области компьютерных технологий, которые хотят получить представление о применении тех или иных методов проектирования алгоритмов.

Алгоритмический анализ состоит из двух фундаментальных компонентов: выделения математи-чески чистого ядра задачи и выявления методов проектирования подходящего алгоритма на осно-вании структуры задачи. И чем лучше аналитик владеет полным арсеналом возможных методов проектирования, тем быст-рее он начинает распознавать «чистые» формулировки, лежащие в основе запутанных задач реального мира.

Алгоритмические задачи образуют ядро компьютерной науки, однако они редко появляются в виде аккуратно упакованных, математи-чески точных вопросов. Чаще они отягощаются множеством хлопотных подробностей, привязанных к конкретному случаю; одни из этих подробностей важны, другие избыточны. В результате алгоритмический анализ состоит из двух фундаментальных компонентов: выде-ления математически чистого ядра задачи и выявления методов проектирования подходящего алгоритма на основании структуры зада-чи. Эти два компонента взаимосвязаны: чем лучше аналитик владеет полным арсеналом возможных методов проектирования, тем быст-рее он начинает распознавать «чистые» формулировки, лежащие в основе запутанных задач реального мира. Таким образом, при ис-пользовании с максимальной эффективностью алгоритмические идеи не просто предоставляют решения четко поставленных задач — они формируют язык для четкого выражения вопросов, заложенных в их основу.

Цель этой книги — донести до читателя этот подход к алгоритмам в форме процесса проектирования, который начинается с задач, встречающихся по всему диапазону вычислительных приложений, использует хорошее понимание методов проектирования алгоритмов и конечным результатом которого является разработка эффективных решений таких задач. Мы будем изучать роль алгоритмических идей в компьютерной науке вообще и постараемся связать эти идеи с диапазоном точно сформулированных задач, для решения кото-рых проектируются и анализируются алгоритмы. Иначе говоря, какие причины заставляют нас искать решение этих задач и как мы выбираем конкретные способы их формулировки? Как мы узнаем, какие принципы проектирования уместны в той или иной ситуации?

Исходя из сказанного, мы постарались показать, как выявлять «чистые» формулировки алгоритмических задач в сложных вычислитель-ных областях и как на базе этих формулировок проектировать эффективные алгоритмы для решения полученных задач. Чтобы разоб-раться в сложном алгоритме, часто бывает проще всего реконструировать последовательность идей (включая неудачные заходы и тупи-ки), которые привели от исходных упрощенных методов к выработанному со временем решению. Так сформировался стиль изложения, не приводящий читателя от постановки задачи сразу к алгоритму и, на наш взгляд, лучше отражающий то, как мы и наши коллеги под-ходим к решению подобных задач.

Общие сведения
Книга предназначена для студентов, прошедших двухсеместровый вводный курс вычислительных технологий (стандартный курс «CS1/CS2»), в ходе которого они писали программы для реализации базовых алгоритмов, и работы с такими структурами данных, как деревья и графы, а также с базовыми структурами данных (массивы, списки, очереди и стеки). Так как переход между этим курсом и первым курсом по алгоритмам еще не стал стандартным, книга открывается с изложения тем, которые знакомы студентам некоторых образовательных учреждений по курсу CS1/CS2, но в других учреждениях включаются в учебный план первого курса по алгоритмам. Соответственно, эта часть может рассматриваться либо как обзор, либо как новый материал; включая ее, мы надеемся, что книга может быть использована в более широком диапазоне учебных курсов и с большей гибкостью в отношении исходных знаний, обязательных для читателя.

В соответствии с описанным подходом мы разрабатываем базовые методы проектирования алгоритмов, изучая задачи из многих облас-тей компьютерной науки и сопутствующих областей. В частности, приводятся довольно подробные описания возможных применений из области систем и сетей (кэширование, коммутация, междоменная маршрутизация в Интернете), искусственного интеллекта (планирова-ние, игры, сети Хопфилда), распознавание образов (сегментация изображений), извлечение информации (обнаружение точки перехо-да, кластеризация), исследование операций (планирование воздушного движения) и вычислительная биология (выравнивание последо-вательностей, вторичная структура РНК).

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

Чтобы упростить работу с такими задачами, в каждую главу включается раздел «Упражнения с решениями», в котором мы берем одну или несколько задач и подробно описываем процесс поиска решения. По этой причине обсуждение каждого упражнения с решением получается намного длиннее, чем простая запись полного, правильного решения (другими словами, намного длиннее, чем было необ-ходимо для полноценного решения, если бы эта задача была задана студенту для самостоятельного решения). Как и в остальном тексте книги, обсуждения в этих разделах должны дать читателю представление о более масштабных процессах, применяемых для решения задач такого типа и в конечном итоге приводящих к точному решению.

Стоит упомянуть еще два обстоятельства, связанных с использованием этих задач для самостоятельной работы в учебных курсах. Во-первых, задачи упорядочены приблизительно по возрастанию сложности, но это всего лишь приблизительный ориентир, и мы не сове-туем уделять ему слишком много внимания; так как основная часть задач была разработана для самостоятельной работы студентов, большие подмножества задач в каждой главе довольно тесно связаны в отношении сложности. Во-вторых, если не считать начальных глав, над решением этих задач придется потрудиться — как для того, чтобы связать описание задачи с алгоритмическими методами, описанными в главе, так и для непосредственного проектирования алгоритма. В своем учебном курсе мы назначали около трех таких задач на неделю.

Учебные аспекты и дополнения
Кроме задач и упражнений с решениями, в этой книге используется ряд других учебных аспектов, а также дополнения, упрощающие ее применение в учебных целях.

Как упоминалось ранее, многие разделы в книге посвящены формулировке алгоритмической задачи (включая ее историю и мотивацию для поиска решения), проектированию и анализу алгоритма для ее решения. В соответствии с этим стилем такие разделы имеют еди-ную структуру, включающую последовательность подразделов: «Задача» с описанием задачи и ее точной формулировкой; «Проекти-рование алгоритма» с применением подходящих методов для разработки алгоритма; и «Анализ алгоритма» с доказательством свойств алгоритма и анализом его эффективности. В тех случаях, где рассматриваются расширения задачи или приводится дополнительный анализ алгоритма, включаются дополнительные подразделы. Целью такой структуры является введение относительно общего стиля изложения, который переходит от исходного обсуждения проблемы, возникающей в вычислительной области, к подробному анализу методов ее решения.

Краткое содержание
Глава 1 начинается с представления некоторых типичных алгоритмических задач. Мы начнем с задачи устойчивых паросочетаний, пото-му что она позволяет обозначить базовые аспекты разработки алгоритмов более конкретно и элегантно, чем любые абстрактные рас-суждения: поиск устойчивых паросочетаний обусловлен естественной, хотя и сложной практической областью, на базе которой можно абстрагировать интересную формулировку задачи и неожиданно эффективный алгоритм ее решения. В оставшейся части главы 1 рас-сматриваются пять «типичных задач», которые предопределяют темы из оставшейся части курса. Эти пять задач взаимосвязаны в том смысле, что все они могут рассматриваться как вариации и/или особые случаи задачи поиска независимого множества; но одна задача может быть решена при помощи «жадного» алгоритма, другая — методом динамического программирования, третья — методом нахож-дения потока в сети, четвертая (собственно задача независимого множества) является NP-полной, а пятая — PSPACE-полной. Тот факт, что тесно связанные задачи могут значительно отличаться по сложности, играет важную роль в книге, и эти пять задач служат ориен-тирами, к которым мы неоднократно возвращаемся по мере изложения материала.

Главы 2 и 3 помогают связать материал с учебным курсом CS1/CS2, о котором говорилось выше. В главе 2 вводятся ключевые мате-матические определения и понятия, используемые при анализе алгоритмов, а также мотивация для их применения. Глава начинается с неформального обзора того, что же следует понимать под вычислительной разрешимостью задачи, а также концепцией полиномиаль-ного времени как формального критерия эффективности. Затем вопросы скорости роста функций и асимптотического анализа рассмат-риваются более формально, приводится информация по функциям, часто встречающимся при анализе алгоритмов, а также по их стан-дартным применениям. В главе 3 рассматриваются базовые определения и алгоритмические примитивы, необходимые для работы с графами и занимающие центральное место во многих задачах книги. К концу учебного курса CS1/CS2 студенты реализуют многие ба-зовые алгоритмы теории графов, но этот материал полезно представить здесь в более широком контексте проектирования алгоритмов. В частности, мы рассмотрим базовые определения графов, методы обхода графов (обход в ширину и обход в глубину) и основные концепции направленных графов, включая сильную связность и топологическое упорядочение.

В главах 2 и 3 также представлены многие базовые структуры данных, используемые при реализации алгоритмов в книге; более слож-ные структуры данных описаны в последующих главах. Наш подход к структурам данных заключается в том, чтобы представлять их тогда, когда они потребуются для реализации алгоритмов, описанных в книге. Таким образом, хотя многие структуры данных уже бу-дут знакомы студентам по курсу CS1/CS2, мы будем рассматривать их в более широком контексте проектирования и анализа алгорит-мов.

В главах 4–7 рассматриваются четыре основных метода проектирования алгоритмов: жадные алгоритмы, принцип «разделяй и власт-вуй», динамическое программирование и нахождение потока в сети. С жадными алгоритмами важно понять, когда они работают, а когда нет; наше рассмотрение этой темы базируется на способе классификации алгоритмов, используемых для доказательства пра-вильности работы жадных алгоритмов. Глава завершается обзором основных применений жадных алгоритмов для поиска кратчайших путей, направленных и ненаправленных связующих деревьев, группировки и сжатия. Обсуждение метода «разделяй и властвуй» на-чинается с обзора стратегий рекуррентных соотношений как границ времени выполнения; затем мы покажем, как знание этих рекур-рентных соотношений может управлять проектированием алгоритмов, превосходящих прямолинейные решения многих базовых задач, включая сравнение оценок, нахождение ближайших пар точек на плоскости и быстрое преобразование Фурье. Знакомство с динами-ческим программированием начинается с интуитивно понятной рекурсии, на которой оно базируется, с последующей разработкой все более и более выразительных формул через приложения, в которых они естественным образом встречаются. Наконец, мы рассмотрим алгоритмы для задач нахождения потока в сети; большая часть этой главы будет посвящена разнообразным практическим примене-ниям этих потоков. В том объеме, в котором потоки в сети рассматриваются в алгоритмических учебных курсах, студенты часто недос-таточно хорошо представляют широкий спектр задач, к которым они могут применяться; мы постараемся воздать должное их гибкости и представим применение потоков для распределения загрузки, планирования, сегментации изображений, а также ряда других задач.

Главы 8 и 9 посвящены понятию вычислительной неразрешимости. Основное внимание в них уделяется NP-полноте; базовые NP-пол-ные задачи разбиваются на категории, чтобы помочь студентам в идентификации возможных сокращений при обнаружении новых задач. Мы дойдем до достаточно сложных доказательств NP-полноты, с рекомендациями относительно того, как следует подходить к построению сложных сокращений. Также будут рассмотрены типы вычислительной сложности, выходящие за рамки NP-полноты, осо-бенно в области PSPACE-полноты. Эта полезная концепция подчеркивает, что неразрешимость не кончается на NP-полноте; PSPACE-полнота также закладывает фундамент для центральных понятий из области искусственного интеллекта (планирования и ведения игр), которые без нее не нашли бы отражения в рассматриваемой алгоритмической области.

В главах с 10-й по 12-ю рассматриваются три основных метода работы с вычислительно неразрешимыми задачами: идентификация структурированных особых случаев, алгоритмы аппроксимации и эвристики локального поиска. Глава, посвященная разрешимым осо-бым случаям, показывает, что экземпляры NP-полных задач, встречающиеся на практике, могут быть не столь сложны в худших слу-чаях, потому что нередко они содержат структуру, которая может быть использована при проектировании эффективного алгоритма. Мы покажем, что NP-полные задачи часто удается эффективно решить, если ограничиться входными данными, имеющими структуру дере-ва. Тема завершается подробным обсуждением декомпозиций графов в дерево. Хотя эта тема больше подходит для выпускных учебных курсов, она имеет существенную практическую ценность, для которой трудно найти более доступный материал. В главе, посвященной алгоритмам аппроксимации, рассматривается процесс проектирования эффективных алгоритмов и задача анализа оптимального реше-ния для построения хороших оценок. Что касается методов проектирования алгоритмов аппроксимации, мы сосредото-чимся на жадных алгоритмах, линейном программировании и третьем методе, который будет называться «определение цены» (pricing), использующим идеи первых двух. Наконец, мы рассмотрим эвристики локального поиска, включая алгоритм Метрополиса и метод модельной «закал-ки». Эта тема часто не рассматривается в алгоритмических курсах среднего уровня, потому что о доказуемых гаран-тиях таких алго-ритмов известно очень мало; однако, учитывая их широкое практическое распространение, мы считаем, что студентам будет полезно знать о них. Также включаются описания случаев, для которых существуют доказуемые гарантии.

В главе 13 рассматривается применение рандомизации при проектировании алгоритмов. На эту тему написано несколько хороших книг. Здесь мы постараемся предоставить более компактное введение в некоторые способы применения методов рандомизации, осно-ванные на информации, которая обычно входит в учебные курсы дискретной математики среднего уровня.

Об авторах
Джон Клейнберг (Jon Kleinberg) — профессор теории вычислительных систем в Корнелльском университете. Получил докторскую степень в Массачусетском технологическом институте в 1996 году.

Исследования Клейнберга посвящены алгоритмам, прежде всего связанным со структурой сетей и информации, и их практическим применениям в области компьютерных технологий, оптимизации, анализа данных и вычислительной биологии. Его работы по теме сетевого анализа помогли заложить основу современного поколения поисковых систем Интернета.

Ева Тардос (Eva Tardos) — профессор теории вычислительных систем в Корнелльском университете. Получила докторскую степень в Университе Этвёша в Будапеште (Венгрия) в 1984 году. Член Американской академии наук и искусств и Ассоциации по вычислитель-ной технике США.

Научные интересы Тардос связаны с проектированием и анализом алгоритмов для решения задач из теории графов и сетей. Наибольшую известность получили ее работы в области алгоритмов сетевого потока и аппроксимирующих алгоритмов для решения сетевых задач. Ее недавние работы были посвящены алгоритмической теории игр.

Более подробно с книгой можно ознакомиться на сайте издательстваОглавлениеОтрывок

Для Хаброжителей скидка 25% по купону — Алгоритмы

habr.com

литература по веб-технологиям, алгоритмам и структурам данных, углубленному программированию на С++ / Блог компании Mail.Ru Group / Хабр

В процессе построения учебной программы наших образовательных проектов мы составили список специализированных книг, рекомендованных к изучению по каждой из дисциплин, — всего более 100 наименований на весь период обучения. Не станем таить и представим вам этот список, сопроводив краткими комментариями. Уместить такой объем информации в рамках одной статьи затруднительно, поэтому обзор рекомендованной Технопарком литературы разбит на четыре части — по числу семестров, с небольшой добавкой полезных книг, предложенных студентами. Ссылки в комментариях на дополнительное интересное чтиво только приветствуются.

Первый семестр призван «выровнять» знания студентов. Он содержит такие дисциплины, как алгоритмы и структуры данных, программирование на C++, а также обзорный курс по веб-технологиям. С книг по этим предметам и начнется обзор. Большая часть представленных книг относится к нестареющей «классике», являющейся собранием основополагающих концепций.

Книга: «Компьютерные сети» Авторы: Виктор Олифер, Наталия Олифер

Виктор и Наталья совместно создали и разработали более 22 учебных курсов, в течение многих лет вели курс лекций в МИРЭА, МГТУ им. Н.Э. Баумана, а также в Центре информационных технологий.

Книга «Компьютерные сети. Принципы, технологии и протоколы» рекомендована Министерством образования РФ. Издание подойдет для тех, кто хотел бы получить базовые знания о принципах построения компьютерных сетей, понять особенности традиционных и перспективных технологий локальных и глобальных сетей, изучить способы создания крупных составных сетей и управления ими.

Книга: «DNS and BIND» Авторы: Крикет Ли, Пол Альбитц

Крикет Ли — выпускник Калифорнийского университета в Беркли. После учебы он устроился в Hewlett-Packard, где проработал девять лет. В 1997 г. покинул HP и основал компанию Acme Byte & Wire, осуществляющую консультации и обучение в области DNS. На протяжении одного года Крикет работал директором по DNS-продуктам в Verisign Global Registry Services. В марте 2003 г. перешел в компанию Infoblox, создающую DNS- и DCHP-устройства, где занял пост вице-президента.

Пол Альбитц получил степень бакалавра наук в университете Висконсина и магистра наук в университете Пердью. Работал в Hewlett-Packard над версиями BIND для системы HP-UX версий 7.0 и 8.0. Он создал инструменты, используемые для управления доменом hp.com.

Книга «DNS and BIND» — словно Библия для системных администраторов. Материал в ней подается простым, доступным языком. Издание посвящено BIND 9.3.2 и BIND 8.4.7. BIND 9.3.2 включает усовершенствования безопасности и поддержки IPv6, а также ENUM, SPF, и использование доменных имен, содержащих буквы национальных алфавитов.

Здесь вы найдете всю необходимую информацию о принципах работы DNS, о структуре пространства доменных имен, об установке и настройке серверов имен, о программировании при помощи функций библиотеки DNS-клиента и о многом-многом другом.

Книга: «SQL для простых смертных» Автор: Мартин Грабер

Писатель, учитель и консультант Мартин Грабер несколько десятилетий назад создал полное введение в структурированный язык запросов, благодаря которому до сих пор можно легко научиться работать с SQL. «SQL для простых смертных» — руководство для любой реализации языка структурированных запросов, в котором приводится справочник по стандартному SQL, а также имеется описание общих свойств нестандартного SQL.

Книга поможет повысить эффективность работы с составными таблицами данных за счет использования развитой техники одновременных запросов к нескольким таблицам, формирования подзапросов и сложных запросов. С помощью этого издания можно получить практические навыки управления реляционными базами данных.

Книга: «Основы реляционных баз данных» Авторы: Дженнифер Уидом, Джеффри Д. Ульман

Дженнифер Уидом — доцент факультетов информатики и электротехники Стэнфордского университета, активный участник исследований в области гетерогенных и полуструктурированных баз данных (БД), методов хранения данных и активных систем БД.

Джеффри Д. Ульман — профессор Стэнфордского университета, один из основателей теории баз данных. Выступил научным руководителем целого поколения аспирантов, ставших впоследствии ведущими исследователями теории баз данных. Его учебники по компиляторам, теории вычислений и базам данных считаются образовательным стандартом.

Книга «Основы реляционных баз данных» будет полезна всем, кто изучает базы данных. В ней рассмотрены стандарты SQL2, SQL3, ODMG, ODL/OQL, традиционный метод проектирования баз данных, а также анализируется множество аспектов программирования на языке SQL.

Доступным языком объясняются вопросы пользовательских представлений, ограничений целостности, триггеров, транзакций, информационной защиты и рекурсии в SQL3.

Книга: «jQuery. Подробное руководство по продвинутому JavaScript» Авторы: Беэр Бибо, Иегуда Кац

Беэр Бибо — веб-разработчик с более чем 30-летним стажем программирования. Один из авторов книг «jQuery in Action», «Ajax на практике», «Ajax: библиотеки Prototype и Scriptaculous в действии».

Иегуда Кац разрабатывал веб-сайты для New York Times, Allure Magazine, Architectural Digest, Yoga Journal. Участник основной команды проекта jQuery, принимал участие в разработке Merb (альтернативы Ruby on Rails).

Издание «jQuery. Подробное руководство по продвинутому JavaScript» — действительно подробное справочное руководство по платформе для разработки веб-приложений, в котором описывается, как выполнять обход документов HTML, обрабатывать события, добавлять поддержку технологии Ajax в свои веб-страницы, воспроизводить анимацию, взаимодействие другими инструментами, платформами и методами создания модулей расширения для jQuery. Книга предназначена для тех, кто уже знаком с JavaScript и Ajax.

Книга: «Изучаем Python» Автор: Марк Лутц

Если вы хоть немного знаете, что такое Python, то и Марк Луц вам знаком. Он является одним из ведущих специалистов в мире по Питону, автором самых ранних и наиболее популярных публикаций. Лутц использует Питон и занимается его популяризацией уже более 20 лет, большую часть времени уделяя преподаванию и написанию книг по этому языку.

Четвертое издание «Изучаем Python» содержит основные типы объектов в языке, порядок их создания и работы с ними, а также включает методы работы с модулями и дополнительными объектно-ориентированными инструментами — классами. Приводятся описания моделей и инструкций обработки исключений, а также обзор инструментов разработки.

Дополнительные материалы:

  • 3-е издание «Learn Python the Hard Way» содержит хорошие курсы для начального изучения Питона и закрепления освоенного материала: http://learnpythonthehardway.org/.
  • Вы новичок в Django или программировании? Все, что вам надо знать о Django: http://www.djbook.ru/rel1.7/
  • Учебник по созданию сайтов для начинающих, содержащий простые и легкие в освоении материалы: www.htmlbook.ru.

Книга: «Информатика. Основополагающее введение. Часть I» Автор: Манфред Бой

Том I четырехтомника выдающегося немецкого ученого Манфреда Боя, лауреата премии Лейбница в области информатики, посвящен базовым понятиям информации и различным формам ее обработки. Манфред дает подробное объяснение алгоритмов (включая их классификацию, описание и исполнение), методов программирования, машинно-ориентированных языковых элементов. Книга содержит исчерпывающие объяснения по вопросам представления и обработки информации.

Книга: «Алгебраическая алгоритмика. С упражнениями и решениями» Авторы: Клод Китте, Патрис Ноден

Два французских математика в книге, изобилующей формулами, дают ответ на вопрос «что и как можно вычислять?». Авторы упоминают «Искусство программирования» (о котором мы обязательно расскажем дальше) как главный источник вдохновения. Сходство между ними определенно прослеживается. Книгу можно рекомендовать всем, кто применяет компьютерную алгебру и изучает ее. Трудно найти наиболее исчерпывающее издание по вычислению математических объектов.

Книга: «Алгоритмы и структуры данных» Автор: Никлаус Вирт

Про таких людей обычно говорят: в представлении не нуждается. Мы все же кратко заметим, что Никлаус Вирт — ученый, инженер, лауреат премии Тьюринга, один из известнейших в мире теоретик языков программирования, создатель языков Паскаль, Модула-2, Оберон.

Книги Вирта по структурному программированию в образовании считаются обязательным стандартом.

«Алгоритмы и структуры данных» — настольное пособие для программистов, дающее необходимый минимум знаний по алгоритмике. В книге подробно рассказывается о таких традиционных темах алгоритмики, как сортировка, поиск, рекурсия, динамические структуры данных.

Книга: «Структуры данных и алгоритмы» Авторы: Альфред В. Ахо, Джон Э. Хопкрофт, Джеффри Д. Ульман

Альфред Ахо — канадский ученый-информатик, один из создателей интерпретируемого скриптового C-подобного языка AWK, автор и соавтор множества публикаций и книг по различным аспектам информатики.

Джон Хопкрофт — американский ученый, лауреат премии Тьюринга, исследователь теоретических аспектов информатики, в частности анализа алгоритмов и теории графов.

Джеффри Ульман — известный исследователь в области информационных технологий, один из авторов «классических» учебников по компиляторам, теории вычислений и базам данных.

Как вы можете вообразить, такая тройка авторов могла представить только фундаментальное учебное пособие, в котором рассматриваются основы современной методологии разработки программ. Книга не потребует от вас глубоких знаний — достаточно понимать хоть какой-нибудь язык программирования высокого уровня (например, Pascal).

Книги:«Фундаментальные алгоритмы на C. Части 1—5. Анализ. Структуры данных. Сортировка. Поиск. Алгоритмы на графах»«Алгоритмы на C++» Автор: Роберт Седжвик

Глубокое исследование основополагающих концепций алгоритмов провел профессор Принстонского университета, автор многочисленных научных статей и серии учебников по алгоритмам Роберт Седжвик. В «Фундаментальных алгоритмах на C» подробно рассмотрены поиск в орграфах, неорграфах и сетях, построение минимальных остовных деревьев и кратчайших путей, вычисление потоков в сетях с различными характеристиками. Большое внимание уделяется рабочим характеристикам алгоритмов, а также их математическому выводу.

«Алгоритмы на C++» — это и продолжение, и переосмысление описания алгоритмов и структур данных, на этот раз выполненное на C++, хотя приведенные сведения являются фундаментальными и применимы к программированию на любом языке. В книгу добавлены новые алгоритмы, иллюстрации, комментарии и т.д.

Книга: «Структуры данных и алгоритмы в Java» Автор: Роберт Лафоре

Роберт Лафоре пишет книги по программированию уже 30 лет. Благодаря его книгам неисчислимое количество программистов овладели технологиями объектно-ориентированного программирования. Книга «Структуры данных и алгоритмы в Java» посвящена основам использования алгоритмов, с примерами, выполненными на Java, хотя для обучения достаточно владеть любым языком программирования. В книге подробно рассматриваются такие темы, как сортировка, абстрактные типы данных, связанные списки, рекурсия, древовидные структуры данных, хеширование, пирамиды, графы.

Книга: «Дискретный анализ» Автор: Иосиф Романовский

Иосиф Романовский — в нашей подборке редкий представитель отечественных авторов. Профессор кафедры исследования операций СПбГУ, автор целого ряда эффективных алгоритмов для решения оптимизационных задач, включая компьютерную реализацию этих алгоритмов, написал популярные лекционные курсы по оптимальному программированию и программированию на ЭВМ алгоритмов оптимизации.

Пособие «Дискретный анализ» написано по материалам лекционного курса Иосифа Романовского. В нем акцент сделан на связи между понятиями дискретного анализа, возникающими в разных разделах математики и современной информатики.

Книга: «Конкретная математика. Основание информатики» Авторы: Роналд Грэхем, Дональд Эрвин Кнут, Орен Паташник

Почти «катехизический документ» по алгоритмике, рассматривающий математические основы анализа алгоритмов. В названии «Конкретная математика» содержится игра слов: КОНтинуальная и дисКРЕТНАЯ. В книге представлен материал об оперировании с дискретными объектами, имеющий сходство с традиционными методами математического анализа.

В книге содержится более 500 упражнений различного уровня сложности, излагаемых в неформальном стиле и сопровождаемых «заметками на полях» от первых редакторов книги — студентов Стэнфорда. Рекомендуем всем изучающим и применяющим дискретную математику и информатику.

Книга: «Алгоритмы. Построение и анализ» Авторы: Томас Х. Кормен, Чарльз Э. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн

Целая плеяда авторов подготовила издание, охватывающее огромный объем материала.

Клиффорд Штайн — профессор, специалист в области компьютерных наук.

Рональд Линн Ривест — специалист по криптографии, автор симметричных алгоритмов шифрования RC2, RC4, RC, один из авторов алгоритма RSA.

Чарльз Эрик Лейзерсон — профессор Массачусетского технологического института, специализируется на теории параллельных, распределенных вычислений и практическом ее применении.

Томас Кормен — профессор, преподает в Дартмутском колледже, также занимает должность директора по написанию программ в этом учреждении.

Книга «Алгоритмы. Построение и анализ» — фундаментальный труд в области алгоритмов. В ней используются примеры псевдокода, который понятен любому, кто хоть в малой степени знаком с программированием, а пояснения принципов работы даны без излишней математической строгости и требуют лишь элементарных знаний.

Первое издание этой книги стало стандартным справочным руководством для профессионалов и учебным пособием для университетов. Дальнейшие издания получили многочисленные дополнения, множество новых упражнений и задач. Третье издание содержит Деревья ван Эмде Боаса и многопоточные алгоритмы.

Книга: «Искусство программирования. Том 1—4» Автор: Дональд Эрвин Кнут

Профессор Кнут — один из самых уважаемых и цитируемых в мире авторов книг по программированию. Также он написал серию всемирно известных книг по основным алгоритмам и методам вычислительной математики. Дональд Кнут удостоен многочисленных премий и наград, а с 1996 г. присуждается премия его имени — за особый вклад в развитие основ информатики.

«Искусство программирования» — фундаментальная монография, посвященная важнейшим алгоритмам, используемым в информатике. Книга признана одной из 12 лучших физико-математических монографий столетия.

Основная особенность монографии, создаваемой на протяжении 40 лет, — исключительное качество подаваемого материала, а также глубина анализа рассматриваемых вопросов.

Книга: «Analytic Combinatorics» Авторы: Филипп Флажоле, Роберт Седжвик

Филипп Флажоле — французский ученый, предложивший теорию аналитической комбинаторики. Большинство его научно-исследовательских работ посвящены общим методам анализа вычислительной сложности алгоритмов.

Книга «Analytic Combinatorics» является одним из наиболее свежих подходов к проблеме обеспечения возможности точных количественных предсказаний свойств больших комбинаторных структур. Авторы (среди которых и уже знакомый нам Роберт Седжвик) дают полный объем необходимой базовой математики, а также тщательно рассматривают как классические, так и современные приложения теории аналитической комбинаторики. В книге содержатся наглядные примеры приложений, упражнения и примечания.

Книга: «Комбинаторика для программистов» Автор: Витольд Липский

Витольд Липский — польский специалист по программированию, профессор Парижского университета, обладатель докторской степени. Книга «Комбинаторика для программистов» охватывает широкий спектр комбинаторных и теоретико-графовых алгоритмов. Описание алгоритмов дано на Паскале. Стиль изложения — справочный: постановка задачи, алгоритм ее решения, комментарии, трудоемкость, примеры.

Книга: «Строки, деревья и последовательности в алгоритмах. Информатика и вычислительная биология» Автор: Дэн Гасфилд

Профессор Дэн Гасфилд преподает в университете Дэвиса, Калифорния. В круг его интересов входят исследования в области эффективности алгоритмов, связанных с комбинаторной оптимизацией. Гасфилд особо интересуется комбинаторными проблемами, возникающими в вычислительной молекулярной биологии (в частности? биоинформатики и геномики).

Книга «Строки, деревья и последовательности в алгоритмах. Информатика и вычислительная биология» будет интересна не только тем, кто интересуется биологией, но и всем, кто хочет самостоятельно познакомиться с современными алгоритмами обработки практической информации.

Книга: «Методы и алгоритмы вычислений на строках» Автор: Билл Смит

Профессор Уильям Ф. (Билл) занимался консультированием в области использования компьютерных технологий в бизнесе и правительственных организациях. Основная область его исследования — комбинаторные алгоритмы.

Книга «Методы и алгоритмы вычислений на строках» описывает фундаментальные алгоритмы и методы, эффективно вычисляющие паттерны в строковых последовательностях. Эти алгоритмы и методы используются в таких областях, как сжатие данных, криптография, распознавание речи, компьютерное зрение, вычислительная геометрия, молекулярная биология и т.п. Книга содержит более 500 упражнений, поясняющих и расширяющих материал.

Книга: «Алгоритмические трюки для программистов» Автор: Генри С. Уоррен мл.

Генри Уоррен более 40 лет проработал в IBM. Он трудился над рядом военных командно-управляющих систем и над проектом языка программирования SETL. С 1973 г. Уоррен занимается компиляторами и архитектурой компьютеров в исследовательском подразделении IBM.

Книга «Алгоритмические трюки для программистов» содержит множество трюков компьютерной арифметики, которые будут крайне полезны разработчикам библиотек и компиляторов, а также всем, кто хочет быстро создавать эффективный код. В книге представлены примеры работ с отдельными битами, байтами, вычисления различных целочисленных функций.

Книга: «Дискретная математика для программистов» Автор: Федор Новиков

Федор Александрович Новиков — доцент кафедры прикладной математики Санкт-Петербургского государственного политехнического университета и кафедры технологий программирования Санкт-Петербургского государственного университета информационных технологий, механики и оптики. В учебнике «Дискретная математика для программистов» изложены основные разделы дискретной математики и описаны важнейшие алгоритмы на дискретных структурах данных.

Книга допущена Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки дипломированных специалистов «Информатика и вычислительная техника».

Книга: «Дискретная математика для инженера» Автор: Олег Кузнецов

Олег Петрович Кузнецов — заведующий сектором Института проблем управления РАН, доктор технических наук. В книге «Дискретная математика для инженера» изложены основные понятия теории множеств, общей алгебры, логики, теории графов, теории алгоритмов и формальных систем, теории автоматов. Издание представляет интерес для инженеров, специализирующихся в области автоматизированного управления и проектирования, вычислительной техники, информационных технологий и передачи информации.

Книга: «Приемы объектно-ориентированного проектирования. Паттерны проектирования» Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес

Эрих Гамма — программист из Швейцарии, ведущий разработчик фреймворка для выполнения юнит-тестов на джаве JUnit и кросс-платформенной интегрированной среды разработки ПО (Eclipse). Работал в IBM над проектом масштабируемой платформы с открытым кодом от для разработки ПО (Jazz).

Программист Ричард Хелм также работал в IBM, в исследовательском центре компании, занимающемся разработкой новых технологий.

Третий автор — Ральф Джонсон — профессор в Университете штата Иллинойс, популяризатор объектно-ориентированного языка с динамической типизацией Smalltalk.

Джон Влиссидес работал в Стэнфордском университете, а с 1991 г. — в исследовательском центре IBM. Является автором нескольких книг, многих статей и докладов по объектно-ориентированным технологиям, паттернам проектирования и моделированию программного обеспечения.

Авторы, известные как «банда четырех», подарили миру изящное решение типичных задач, возникающих в ООП. Книга состоит из двух частей: в первой рассказывается о возможностях и недостатках ООП, во второй части описаны 23 классических шаблона проектирования. Приводящиеся в книге примеры написаны на языках программирования C++ и Smalltalk.

«Банда» излагает принципы использования паттернов проектирования и приводит их каталог. В книге демонстрируется роль паттернов в создании архитектуры сложных систем и показывается, как благодаря использованию содержащихся в справочнике паттернов проектировщик сможет разрабатывать собственные приложения.

Книга: «Рефакторинг с использованием шаблонов» Автор: Джошуа Кериевски

Джошуа Кериевски основал компанию Industrial Logic, но нам он больше известен как автор книги, аккумулирующей опыт профессионального разработчика по применению шаблонов проектирования.

Кериевски учит избегать как недостаточного, так и избыточного проектирования, стремиться к постоянному анализу работоспособности кода, упрощению его понимания и сопровождения. На основании как собственного, так и чужого опыта автор детально рассматривает различные признаки кода, требующего рефакторинга, описывает, какой именно рефакторинг наилучшим образом подходит для той или иной ситуации, и описывает его механику. В книге представлено 27 сложных рефакторингов.

Кириевски ссылается на книгу Фаулера «Рефакторинг. Улучшение существующего кода», поэтому для более глубокого понимания способов ввода в архитектуру программы паттернов «Рефакторинг с использованием шаблонов» рекомендуется читать уже после. Дополнительных знаний вам не потребуется, и хотя все приводятся на джаве, в них не используются сложные особенности языка. Книга будет полезна как программистам среднего уровня, так профессионалам.

Книга: «Язык программирования C++. Вводный курс» Авторы: Стенли Б. Липпман, Жози Лажойе, Барбара Му

Стэнли Б. Липпман работал с Бьёрном Страуструпом в исследовательской корпорации Bell Lab на ранних стадиях разработки C++. В 2001 г. Стэнли Липпман стал главным архитектором Visual C++ в Microsoft. Он также работал в Emergent Game Technologies, НАСА, Pixar и 2kQubits.

Жози Лажойе участвовала в работе над компилятором С++ в IBM Canada, а также возглавлял рабочую группу базового языка C++ в составе международной организации по стандартизации ANSI/ISO.

Барбара Му имеет почти 30-летний опыт программирования. На протяжении 15 лет она работала в компании AT&T, сотрудничала с Бьёрном Страуструпом, несколько лет руководила группой разработчиков C++.

Книга этих экспертов явно не ограничивается сухим подзаголовком «вводный курс», а является исчерпывающим руководством для изучения языка. В книге рассмотрены как основы структуры программ на C++, включая использование команд препроцессора и заголовочных файлов, так и более сложные конструкции (исключения, классы, шаблоны функций и классов, перегрузка операторов, множественное наследование и т.п.).

По мере развития C++ в книгу вносятся соответствующие изменения. Помимо фундаментальных концепций, в новой версии книги приводятся наиболее эффективные приемы, позволяющие читателю создавать собственные программы еще до углубленного знакомства с особенностями языка.

Книга: «STL. Карманный справочник» Автор: Рэй Лишнер

Рэй Лишнер в первую очередь известен в Delphi-коммьюнити как автор книг «Secrets of Delphi 2», «Hidden Paths of Delphi 3» и многих статей для таких журналов, как «Delphi Informant», «Dr. Dobb's Journal». Но мы рекомендуем другую его книгу — «STL. Карманный справочник». Это действительно справочник по подмножеству стандартной библиотеки C++. В книге описана библиотека STL в современном виде — алгоритмы, итераторы и контейнеры стандартной библиотеки C++, а также ряд других элементов. Приводится краткая сводка по функциям, классам и шаблонам, образующим STL.

Книга: «Совершенный код. Мастер-класс» Автор: Стив Макконнелл

Стив Макконнелл — программист, редактор и эксперт в области разработки ПО. Он дважды был удостоен премии Jolt Excellence за лучшую книгу года по разработке софта. По степени влияния на отрасль его сравнивали с Биллом Гейтсом и Линусом Торвальдсом.

Самая известная работа Макконнелла — «Совершенный код». Книга, содержащая сотни примеров, иллюстрирующих подлинное искусство программирования, продвигает исключительно грамотные принципы при разработке ПО. Автор синтезировал опыт разработки коммерческого ПО и академических исследований в методику создания совершенного кода.

«Совершенный код» — книга, которую должен прочитать каждый программист. И желательно сделать это несколько раз.

Книга: «C++ и STL. Справочное руководство» Авторы: Дэвид Р. Мюссер, Жилмер Дж. Дердж, Атул Сейни

Дэвид Р. Мюссер — преподаватель, работал с STL с момента ее зарождения: первая реализация библиотеки разработана при его непосредственном участии. Кроме того, он работал над тем, чтобы STL была включена в стандарт ANSI/ISO C++.

Жилмер Дж. Дердж — президент Toltec Software Services Inc., имеет большой опыт разработки приложений на C++, в том числе семь лет — в фирме General Electric Corporate R&D.

Атул Сейни — президент Fiorano Software Inc., производителя программного обеспечения для высокоскоростного обмена сообщениями, разрабатываемого на C++. Он стал первым, кто увидел коммерческий потенциал STL, и предложил свою компанию для продажи библиотеки еще до того, как она вошла в стандарт C++.

Книга «C++ и STL. Справочное руководство» включает небольшой учебный курс, подробное описание каждого элемента библиотеки и большое количество примеров. Книга содержит исчерпывающее описание итераторов, обобщенных алгоритмов, контейнеров, функциональных объектов и т.д. В ней также дается объяснение, как интегрировать STL с другими объектно-ориентированными методами программирования.

Книги:«Решение сложных задач на С++» «Новые сложные задачи на C++» «Стандарты программирования на С+» Автор: Герб Саттер

Герб Саттер — признанный эксперт по C++. Начал работать в Microsoft в качестве евангелиста платформы Visual C++ .NET и достиг должности архитектора ПО C++/CLI. 10 лет он был организатором и секретарем комитета по стандартизации ISO C++. Много лет регулярно публиковал нетривиальные задачи на C++ в серии под названием Guru of the Week. Позднее Саттер опубликовал развернутые версии многих задач в своих первых двух книгах «Решение сложных задач на C++».

Рекомендуем сразу три его книги, рассчитанные на читателя с достаточно глубоким знанием языка. В форме задач и их решений рассматриваются современные методы проектирования и программирования на C++. В книгах сконцентрирован многолетний опыт разработок C++: рассмотрены конкретные методики, приемы и идиомы программирования, особое внимание уделено вопросу проектирования, которое должно обеспечить максимальную надежность, безопасность, производительность и сопровождаемость создаваемого ПО.

Книга: «Алгоритмы на C++» Автор: Роберт Седжвик

О Роберте Сеждвике мы уже рассказывали выше. В книге «Алгоритмы на C++» рассматриваются фундаментальные алгоритмы, структуры данных, сортировка и поиск, алгоритмы на графах, которые играют все более важную роль во множестве приложений, таких как сетевая связность, конструирование электронных схем, составление графиков, обработка транзакций и выделение ресурсов.

В книге подробно описаны массивы, связные списки, строки, деревья и другие базовые структуры данных. Внимание читателя акцентируется на абстрактных типах данных (АТД), на модульном программировании, на ООП и классах C++, приводится более 100 алгоритмов сортировки, выбора, реализаций АТД очереди с приоритетами и реализаций АТД таблицы символов (для поиска).

Книги:«Язык программирования С++» «Программирование. Принципы и практика использования C++» Автор: Бьёрн Страуструп

Невозможно представить подборку книг о C++ без учебников самого автора языка. Бьёрн Страуструп — настоящая легенда, а «Язык программирования C++» является одной из самых широко читаемых книг в своей области. Книги Страуструпа отличает непревзойденное мастерство в области технической документации. Это безусловный канон по возможностям языка.

Первое издание книги «Язык программирования С++» выпущено 29 лет назад. Второе было опубликовано в 1991 г., третье — в 1997 г. Улучшенная версия третьего издания, выпущенная в твердой обложке, получила название «Специальное издание» и отличалась от ранних выпусков третьего издания двумя дополнительными приложениями («Локализация» и «Безопасность исключений и стандартная библиотека»), примерно 1 тыс. исправлений и уточнений, а также дополненным алфавитным указателем. Четвертое издание книги, которая включает в себя C++11, выпущено в 2013 г.

Если вы программируете на С++, то прочесть эту книгу нужно прямо сейчас.

Книга: «Рефакторинг. Улучшение существующего кода» Авторы: Мартин Фаулер, Кент Бек, Джон Брант, Уильям Апдайк, Дон Робертс

Мартин Фаулер — популярный автор книг и статей по архитектуре ПО, по объектно-ориентированному анализу и разработке, по языку UML, рефакторингу, экстремальному программированию и предметно-ориентированным языкам программирования.

Программист Кент Бек создал такие методологии разработки ПО, как экстремальное программирование и разработка через тестирование. Он является одним из пионеров введения в практику шаблонов проектирования ПО, создания методологии разработки через тестирование, а также коммерческого использования языка Smalltalk. Совместно с Эрихом Гамма создал фреймворк для тестирования JUnit.

Джон Брант и Дон Робертс — авторы Refactoring Browser для Smalltalk. Они также выступают консультантами по вопросам практического и теоретического рефакторинга.

Уильям Апдайк написал докторскую диссертацию по рефакторингу объектно-ориентированных сред (в университете штата Иллинойс), послужившую основой первой крупной публикации на данную тему.

Книга «Рефакторинг. Улучшение существующего кода» рассказывает о процессе рефакторинга, описывает принципы углубленного изучения кода с целью его улучшения. В книгу включены более 70 методов рефакторинга, для каждого из которых описываются мотивация и техника испытанного на практике преобразования кода с примерами на Java.

«Must read» для всех разработчиков.

Книга: «Полный справочник по C++» Автор: Герберт Шилдт

Шилдт — писатель, ученый и программист, был членом комитета ANSI, который принимал стандарты С, и комитета ISO, принимавшего стандарты C++. Автор интерпретатора Little C — примера рекурсивного нисходящего парсера.

«Полный справочник по C++» содержит все ключевые слова, функции, классы и свойства языка, соответствующие стандарту ANSI/ISO. В нем освещаются все аспекты языка, включая его основу — язык С.

habr.com

Книги о алгоритмах и математике | ForCoder

Эта книга написана признанным авторитетом в области компьютерных алгоритмов — профессором информатики Томасом Корменом, чей труд «Алгоритмы: построение и анализ», написанный в соавторстве с такими выдающимися учеными, как Чарльз Лейзерсон, Рональд Ривест и Клиффорд Штайн, выдержав три издания, давно стал общепризнанным классическим учебником по алгоритмам.

Поскольку книга «Алгоритмы: построение и анализ» предназначена в первую очередь для студентов и аспирантов, то есть подразумевает достаточно серьезную математическую подготовку, Т. Кормен написал книгу, предназначенную для всех, кого интересуют вопросы, связанные с компьютерными алгоритмами, но базовое образование, да и просто отсутствие времени не позволяют взяться за серьезный труд объемом более 1300 страниц.

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

8,294 просмотров всего, сегодня нет просмотров

Книга «Алгоритмы. Построение и анализ» удачно объединяет в себе полноту охвата и строгость изложения материала. Много книг, посвященных алгоритмам, отличается строгостью изложения материала, но страдает определенной неполнотой; другие книги охватывают огромный объем материала, но недостаточно строго излагают его. В книге «Алгоритмы. Построение и анализ» описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения. Алгоритмы в книге «Алгоритмы. Построение и анализ» описаны простым человеческим языком и с применением псевдокода, который понятен любому, кто хоть в небольшой степени знаком с программированием, а пояснения принципов их работы даны без излишней математической строгости и требуют лишь элементарных знаний.

7,496 просмотров всего, сегодня нет просмотров

Работа программиста всегда немного хакерство, а также смесь арифметики и логики, особенно это касается программиста, который создает элегантный и эффективно работающий код. В этой книге программист-ветеран Генри Уоррен делится с читателями разнообразными приемами из своей коллекции, пополняемой в течение десятилетий работы в области прикладного и системного программирования. Большинство из них носят практический характер, хотя некоторые представляют в первую очередь теоретический интерес. Изложенный материал позволит повысить квалификацию даже бывалому программисту, но при этом книга будет понятна и полезна даже начинающему.

7,857 просмотров всего, сегодня нет просмотров

В этой книге Ричард Берд представляет принципиально новый подход к проектированию алгоритмов, а именно проектирование посредством формального вывода. Основное содержание книги разделено на 30 коротких глав, называемых жемчужинами, в каждой из которых решается конкретная программистская задача. Эти задачи, некоторые из них абсолютно новые, происходят из таких разнообразных источников, как игры и головоломки, захватывающие комбинаторные построения и более традиционные алгоритмы сжатия данных и сопоставления строк.Каждая жемчужина начинается с постановки задачи, формулируемой на функциональном языке программирования Haskell, чрезвычайно мощном и в то же время лаконичном, позволяющем легко и просто выражать алгоритмические идеи. Новшество книги состоит в том, что каждое решение формально вычисляется из исходной постановки задачи посредством обращения к законам функционального программирования.Издание предназначено для программистов, увлекающихся функциональным программированием, студентов, аспирантов и преподавателей, интересующихся принципами проектирования алгоритмов, а также всех, кто желает приобрести и развить навыки рассуждений в эквациональном стиле применительно к программам и алгоритмам.

5,182 просмотров всего, сегодня нет просмотров

Книга Седжвика и Уэйна «Алгоритмы на Java» является классическим справочным руководством в котором содержится необходимый объем знаний для программиста в области алгоритмов, накопленных за последние несколько десятилетий.В книге «Алгоритмы на Java» представлен широкий спектр рассматриваемых тем: исчерпывающее толкование структур данных и алгоритмов сортировки, поиска, обработки графов и строк, включая пятьдесят алгоритмов, которые должен знать каждый программист. Описываются новые реализации алгоритмов на Java, написанные в ясном модульном стиле, при котором весь код доступен читателю и полностью готов к использованию. В книге изучение алгоритмов на Java ведется в контексте важнейших научных, инженерных и коммерческих приложений. Клиенты и алгоритмы выражены с помощью реального кода, а не псевдокода, как во многих других книгах.Книга «Алгоритмы на Java» отличается от множества других ясным и кратким текстом, детальными примерами с иллюстрациями, тщательно подобранным кодом, историческим и научным контекстом, а также упражнениями для самостоятельной проработки на всех уровнях. В книге представлены точные соображения относительно производительности, поддерживаемые соответствующими математическими моделями и эмпирическими исследованиями, которые подтверждают достоверность этих моделей.

7,599 просмотров всего, сегодня нет просмотров

Описание книги Data Structures and Algorithms in C++:Building on the extraordinary success of Data Structures and Algorithms in Java, 2/e, Michael Goodrich and Roberto Tamassia, together with C++ authority David Mount, bring you a new text covering data structures in C++. With this book, you will find a true C++ text, rather than a book translated from Java. Both the programming code and the appropriate concepts have been rewritten.

DATA STRUCTURES AND ALGORITHMS IN C++ helps you develop a wide spectrum of valuable skills, ranging from sound algorithm and data structure design, to effective application of analysis techniques, to clean and efficient implementation and coding of design in C++. The authors’ highly visual, applied approach and extensive suite of Web-based learning tools give you the opportunity to see visual justifications of key analytic concepts, learn about the most recent advances in the field, and actually do program design using data structures.

FEATURES

  • Presents a consistent object-oriented perspective.
  • Design patterns provide clear approaches for developing programs.
  • «Visual Proofs» help you better understand complex analytic concepts.
  • Animations on the text’s Web site visually illustrate data structures and algorithms.
  • Exercises offer numerous opportunities for hands-on learning at various level of rigor.
  • The author’s exceptionally clear writing style helps you understand even the most difficult mathematical concepts.
  • Emphasizes the practical application of the latest software engineering practices.

11,318 просмотров всего, сегодня нет просмотров

Описание книги The Algorithm Design Manual, Second Edition:This expanded and updated second edition of a classic bestseller continues to take the «mystery» out of designing and analyzing algorithms and their efficacy and efficiency. Expanding on the highly successful formula of the first edition, the book now serves as the primary textbook of choice for any algorithm design course while maintaining its status as the premier practical reference guide to algorithms.

NEW: (1) Incorporates twice the tutorial material and exercises. (2) Provides full online support for lecturers, and a completely updated and improved website component with lecture slides, audio and video. (3) Contains a highly unique catalog of the 75 most important algorithmic problems. (4) Includes new «war stories» and «interview problems», relating experiences from real-world applications.Written by a well-known, IEEE Computer Science teaching-award winner, this new edition is an essential learning tool for students needing a solid grounding in algorithms, as well as a uniquely comprehensive text/reference for professionals

7,288 просмотров всего, сегодня нет просмотров

Описание книги Алгоритмы. Построение и анализ:Фундаментальный труд известных специалистов в области кибернетики достоин занять место на полке любого человека, чья деятельность так или иначе связана с информатикой и алгоритмами. Для профессионала эта книга может служить настольным справочником, для преподавателя — пособием для подготовки к лекциям и источником интересных нетривиальных задач, для студентов и аспирантов — отличным учебником. Каждый может найти в ней именно тот материал, который касается интересующей его темы, и изложенный именно с тем уровнем сложности и строгости, который требуется читателю.

Описание алгоритмов на естественном языке дополняется псевдокодом, который позволяет любому имеющему хотя бы начальные знания и опыт программирования, реализовать алгоритм на используемом им языке программирования. Строгий математический анализ и обилие теорем сопровождаются большим количеством иллюстраций, элементарными рассуждениями и простыми приближенными оценками. Широта охвата материала и степень строгости его изложения дают основания считать эту книгу одной из лучших книг, посвященных разработке и анализу алгоритмов.

17,156 просмотров всего, сегодня нет просмотров

Описание книги Введение в теорию автоматов, языков и вычислений:Книга известных американских ученых посвящена теории автоматов и соответствующих формальных языков и грамматик — как регулярных, так и контекстно-свободных. Во второй части рассматриваются различные машины Тьюринга, при помощи которых формализуются понятия разрешимых и неразрешимых проблем, а также определяются функции временной и емкостной оценки сложности алгоритмов.

Изложение ведется строго, но доступно, и сопровождается многочисленными примерами, а также задачами для самостоятельного решения.

Книга будет полезна читателям различных категорий — студентам, аспирантам, научным сотрудникам, преподавателям высших учебных заведений, а также всем, кто интересуется математическими основами современной вычислительной техники.

Содержание книги «Введение в теорию автоматов, языков и вычислений»:

  1. Автоматы: методы и понятия
  2. Конечные автоматы
  3. Регулярные выражения и языки
  4. Свойства регулярных языков
  5. Контекстно-свободные грамматики и языки
  6. Автоматы с магазинной памятью
  7. Свойства контекстно-свободных языков
  8. Введение в теорию машин Тьюринга
  9. Неразрешимость
  10. Труднорешаемые проблемы
  11. Дополнительные классы проблем

11,060 просмотров всего, сегодня нет просмотров

Описание книги Нейронные сети для обработки информации:Представлены важнейшие разделы теории искусственных нейронных сетей. Основное внимание уделяется алгоритмам обучения и их применению для обработки измерительной информации. Дается детальный обзор и описание важнейших методов обучения сетей различной структуры, иллюстрируемые численными экспериментами с практически подтвержденными результатами.

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

Для аспирантов и научных работников, интересующихся методами искусственного интеллекта. Может быть полезна специалистам в области информатики, статистики, физики и технических дисциплин, а также специалистам биомедицинских отраслей знаний.

7,673 просмотров всего, сегодня нет просмотров

Навигация по записям

forcoder.ru

Книги о алгоритмах и математике | ForCoder

Описание книги Фундаментальные алгоритмы и структуры данных в Delphi:Книга Фундаментальные алгоритмы и структуры данных в Delphi представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала Delphi Informant за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как `самая лучшая книга по практическому применению всех версий Delphi`. В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.

Изобилие тщательно проверенных примеров кода существенно ускоряет не только освоение фундаментальных алгоритмов, но также и способствует более квалифицированному подходу к повседневному программированию. Несмотря на то что книга рассчитана в первую очередь на профессиональных разработчиков приложений на Delphi, она окажет несомненную пользу и начинающим программистам, демонстрируя им приемы и трюки, которые столь популярны у истинных `профи`. Все коды примеров, упомянутые в книге, доступны для выгрузки на Web-сайте издательства.

В книге собрано множество алгоритмов. Она будет полезной не только Delphi-программистам, но и разработчикам на других языках.

5,543 просмотров всего, 1 просмотров сегодня

Описание книги Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео:Уникальная в своем роде книга познакомит читателя с методами и алгоритмами сжатия данных, с устройством архиваторов, сжатием изображений и видео. Некоторые методы повышения сжатия на русском языке публикуются впервые. Книга содержит большое количество примеров и упражнений и ориентирована на студентов и преподавателей вузов. Материал книги позволяет самостоятельно несколькими способами написать архиватор с характеристиками, превосходящими программы типа pkzip и arj.

В книге описаны основные классические и современные методы сжатия: метод Хаффмана, арифметическое кодирование, LZ77, LZW, PPM, BWT, LPC и т. д. Разбираются алгоритмы, использующиеся в архиваторах Zip, НА, CabArc(*.саЬ-файлы), RAR, BZIP2, RK. Отдельный раздел посвящен алгоритмам сжатия изображений, использующимся в форматах PCX, TGA, GIF, TIFF, CCITT G3, JPEG, JPEG2000. Рассмотрено фрактальное сжатие, вэйвлет-сжатие и др. Изложены принципы компрессии видеоданных, дан обзор стандартов MPEG,MPEG-2, MPEG-4, H.261 и Н.263.

Книжка не требует больших усилий для понимания основ сжатия данных, с другой стороны теоретические вопросы недостаточно раскрыты для требовательного читателя-теоретика. Для того, чтобы понять, за счёт чего работает тот или иной алгоритм, какие у него достоинства, недостатки и ограничения, книга подходит лучше некуда.

6,041 просмотров всего, сегодня нет просмотров

Описание книги Теория и технология программирования. Основы построения трансляторов:Целью книги является постановка базовых проблем теории формальных языков, разъяснение задач построения трансляторов. Представлена основная концепция трансляции — синтаксически ориентированная обработка предложений входного языка. В рамках этой концепции рассматриваются основные этапы трансляции: восстановление структуры входного текста, вычисление смысла текста по этой структуре, формирование выхода транслятора на основе структуры входного предложения. Понимание этих положений помогает осознанию задач и алгоритмов функциональных блоков современных трансляторов, независимо от технологии и средств их создания.

Изучив методики трансляции, представленные в пособии, читатель без труда сможет освоить любую литературу, посвященную теоретическим, техническим и технологическим проблемам разработки трансляторов и написать транслятор с разработанного им самим простого языка.

Книга предназначена для студентов вузов направлений "Информатика и вычислительная техника" и "Системный анализ и управление", а также других родственных направлений.

5,265 просмотров всего, сегодня нет просмотров

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

Эта книга, с одной стороны, позволяет расширить кругозор и углубить понимание основных принципов и проблем компьютерной науки, а с другой стороны — пополнить собственный инструментарий, предназначенный для ежедневного применения. Книга предназначена всем, кто интересуется и занимается программированием.

6,022 просмотров всего, сегодня нет просмотров

Описание книги Delphi. Готовые алгоритмы:Программирование всегда было достаточно сложной задачей. Эта книга поможет вам легко преодолеть возникающие трудности с помощью библиотеки мощных алгоритмов, полностью реализованных в исходном коде Delphi. Вы узнаете, как выбрать способ, наиболее подходящий для решения конкретной задачи, и как добиться максимальной производительности вашего приложения. Рассматриваются типичные и наихудшие случаи реализации алгоритмов, что позволит вам вовремя распознать возможные трудности и при необходимости переписать или заменить часть программы.

Подробно описываются важнейшие элементы алгоритмов хранения и обработки данных (списки, стеки, очереди, деревья, сортировка, поиск, хеширование и т.д.). Приводятся не только традиционные решения, но и методы, основанные на последних достижениях объектно-ориентированного программирования. Книга предназначена для начинающих программистов на Delphi, но благодаря четкой структуризации материала и богатой библиотеке готовых алгоритмов будет также интересна и специалистам.

7,976 просмотров всего, сегодня нет просмотров

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

Книга дает небольшое количество несложного материала, все разжевывается, приводятся примеры, есть упражнения с исчерпывающими ответами в конце. Она поможет вам повысить навыки в программировании. Книга не является такой уж "сухой", как большинство изданий по математике. Дополнения в издании на русском языке посвящены актуальным задачам теории графов, рекурсивным алгоритмам, общей проблеме перебора и задачам целочисленного программирования.

Книга будет полезна студентам, изучающим курс дискретной математики, а также всем желающим проникнуть в технику написания и проверки корректности алгоритмов, включая программистов-практиков.

7,355 просмотров всего, сегодня нет просмотров

Описание книги Дискретная математика и математическая логика:Рассматриваются основные темы дискретной математики и математической логики: теория множеств, элементы комбинаторики, теория графов, теория переключательных функций и автоматов, теория кодирования, формальная логика, логические исчисления, формальные теории и теория алгоритмов, элементы теории нечетких множеств. Сложные вопросы математики рассматриваются на простых примерах. Большая часть материала снабжена методическими разработками авторов. Имеются задания для самостоятельной работы студентов.

Для студентов вузов, обучающихся по специальностям "Прикладная информатика в экономике", "Экономика и управление на предприятии", а также для преподавателей.

5,829 просмотров всего, сегодня нет просмотров

Описание книги Искусственный интеллект в компьютерных играх:В настоящей книге показано, как ввести в компьютерную игру синтетические игровые персонажи с реалистичными формами поведения, сосредоточиваясь на отдельных аниматах (автономных созданиях с искусственным телом), находящихся в виртуальном мире. Книга посвящена описанию того, как создавать подобные автономные персонажи, основанные на использовании средств ИИ, и заставлять их интеллектуально реагировать на происходящие события. В качестве испытательной площадки применяется реалистичная трехмерная игра.

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

6,982 просмотров всего, сегодня нет просмотров

Описание книги Сжатие данных, изображений и звука:В учебном пособии изложены как общие идеи и основы теории сжатия информации, так и практические методы с подробным описанием конкретных алгоритмов компрессии различных типов цифровых данных. Общие концепции описываются вполне строго и основываются на четких научных принципах. Все алгоритмы проиллюстрированы подробными примерами, снабжены таблицами, диаграммами и рисунками. В книге рассматриваются различные методы сжатия самой разнообразной информации: текстов, графических изображений, звука, анимации, оцифрованных аудио- и видео данных. В руководстве приводятся многие популярные стандарты и протоколы сжатия, такие как JPEG, MPEG, которые часто сопровождаются готовыми к употреблению текстами программ для системы MATLAB.

Книга рассчитана на многочисленную аудиторию программистов и Web-дизайнеров, разработчиков телекоммуникационных и информационных систем, студентов и преподавателей информатики.

5,499 просмотров всего, сегодня нет просмотров

Описание книги Локальная организация интеллектуальных систем:В книге предложен и детально исследован новый принцип организации больших систем — локальная организация. Локальная организация, развивающая и уточняющая принципы создания распределенных систем, представляет собой важную альтернативу централизованным и децентрализованным системам. Она позволяет предложить и проанализировать ряд новых моделей технических систем с элементами искусственного интеллекта.Подход обоснован рассмотрением многочисленных проблем и математических моделей, возникающих в дискретных, непрерывных, комбинаторных и программных задачах. Большинство моделей носит оригинальный характер и может представлять также самостоятельный интерес для теории и различных приложений.

Книга предназначена в первую очередь для специалистов в области информатики, для преподавателей, аспирантов и студентов старших курсов соответствующих специальностей.

3,084 просмотров всего, сегодня нет просмотров

Навигация по записям

forcoder.ru

Алгоритм (издательство) - это... Что такое Алгоритм (издательство)?

Издательство «Алгори́тм» — российское книжное издательство. Основано в 1996 году, специализируется на выпуске книг острой и актуальной общественно-политической и исторической направленности.

Директор издательства — Сергей Васильевич Николаев.

Издательство выпускает труды Вадима Кожинова («Правда „Чёрной сотни“», «Наследники победы», «Правда сталинских репрессий»[1]), Сергея Кара-Мурзы («Оппозиция: выбор есть»[2]), Александра Панарина («Народ без элиты»[3]), Александра Зиновьева, Анатолия Уткина, Александра Проханова, Валентина Сорокина и других аналитиков, мыслителей, историков, философов, политологов, социологов, писателей.

Среди авторов издательства: известные политики, экономисты и предприниматели: Сергей Глазьев, Михаил Делягин, Владимир Жириновский, Дмитрий Рогозин, Михаил Ходорковский, Анатолий Лукьянов, Егор Лигачев, Геннадий Янаев.

Многие книги издательства имеют острую общественно-политическую направленность, что обеспечивает внимание к ним со стороны читателей и СМИ. Издательство регулярно участвует в крупных российских и международных книжных выставках (Московская международная выставка-ярмарка 2008[4]), является лауреатом премий и конкурсов в книгоиздательстве.

Издательство является одним из учредителей Международного Форума «Диалог Цивилизаций и Культур» (англ.: International Forum Dialogue of Civilizations and Cultures — DCC) — неправительственной организации, объединяющей политические, экономические, научные, общественные организации и институты, СМИ, а также отдельных политиков, ученых, интеллектуалов, бизнесменов, деятелей искусства и культуры, представляющих различные культуры, традиции и верования различных стран мира.

Скандалы

Ряд книг, изданных Алгоритмом, вызвали протесты правозащитных и еврейских организаций.[5] Издательству выносилось предупреждение в связи с изданием литературы, признанной экстремистской.[6] Издательство дважды не было допущено на книжную выставку NON-FIXION.[7]

Примечания

Ссылки

Сайт издательства Алгоритм

dal.academic.ru