6 бесплатных книг по алгоритмам в программировании

Оглавление (нажмите, чтобы открыть):

5 книг для начинающих программистов

Полезная подборка, чтобы разобраться в C++, JAVA, Python и узнать про код Грея.

Часто тем, кто всерьёз занимается олимпиадной информатикой, рекомендуют прочесть трёхтомник Дональда Кнута. Кстати, недавно вышел четвёртый том. Но всё же перед тем как взяться за Кнута, советую обратить внимание на книгу Роберта Седжвика «Фундаментальные алгоритмы C++. Анализ. Структуры данных. Сортировка. Поиск».

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

Герберт Шилдт — один из самых опытных авторов книг по изучению языков программирования. Если вы планируете изучать Java, стоит начать именно с этой книги. Шилдт пишет простым языком, последовательно и структурированно.

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

Приятным дополнением станут главы о Swing и JavaFX.

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

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

Эта удивительная книга построена всего лишь на одной известной задаче про Ханойские башни. Несмотря на это, она содержит главы и про битовую арифметику, и про код Грея. Все примеры приводятся на языке Pascal.

Автор онлайн-курса программирования на Python в Фоксфорде, волонтёр международных workshop для ACM

Автор онлайн-курса разработки игровых приложений под Android на языке JAVA в Фоксфорде, преподаватель в IT-школе Samsung

27 книг для программиста по версии Acronis

Представители компании Acronis, ведущего поставщика решений для резервного копирования, специально для пользователей GeekBrains подготовили список книг, полезных для разработчика. Здесь каждый сможет найти что-нибудь для общего развития, пополнения базовых и специализированных знаний. Программистам, которые в дальнейшем видят себя предпринимателями, будет интересна тематическая подборка от Сергея Белоусова, сооснователя Runa Capital и компаний Parallels и Acronis.

Гайдар Магдануров, Вице-президент компании Acronis:

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

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

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

Весьма увлекательным и полезным чтением для разработчиком будут еще и книги Кристенсена «Дилемма инноватора» и «Showstopper!» Закери — с реальными примерами того, как известные компании создают и решают сложности во время разработки программных продуктов.

Базовые знания:

  • Алгоритмы на C++, Роберт Седжвик — Современное и исчерпывающее описание важных алгоритмов и структур данных на C++;
  • Алгоритмы на Java, Роберт Седжвик, Кевин Уэйн — Необходимый объем знаний для программиста в области алгоритмов на Java;
  • Защищенный код, Майкл Ховард, Дэвид Лебланк — Практические советы и рекомендации по защите создаваемых приложений на всех этапах процесса создания ПО.

Специализация по менеджменту:

Специализация по Product management:

Антон Енакиев, вице-президент Acronis по разработке:

Базовые знания:

  • Внутреннее устройство Microsoft Windows, Марк Руссинович, Дэвид Соломон — Руководство по внутреннему устройству и алгоритмам работы основных компонентов Windows;
  • Programming Applications for Microsoft Windows, Jeffrey Richter — Руководство по написанию приложений для Windows;
  • Программирование серверных приложений для Microsoft Windows 2000, Джеффри Рихтер, Джейсон Кларк — Руководство по созданию высокопроизводительных и надежных серверные приложения для Windows 2000;
  • Язык программирования С++, Бьерн Страуструп — Основы программирования на C++ от создателя C++;
  • Искусство программирования, Дональд Эрвин Кнут — «Библия программиста» в четырех томах.

Специализация по Windows (Specific for Windows kernel developers):

  • Windows NT File System Internals, Rajeev Nagar — Руководство по файловым системам на Windows NT;
  • Справочник по базовым функциям API Windows NT/2000, Гэри Неббет — О том, как писать приложения для Windows NT/2000;
  • Windows NT Device Driver Development, Peter G. Viscarola, W. Anthony Mason — Руководство по разработке драйверов на Windows NT;
  • Использование Microsoft Windows Driver Model, Уолтер Они — Все необходимое для понимания процесса написания драйверов;
  • Undocumented Windows NT, Prasad Dabak, Sandeep Phadke — О недосказанном в Windows NT.

Кирилл Коротаев, вице-президент Acronis по инжинирингу, Acronis Backup и Системам Хранения Данных:

Книги обязательные для прочтения системными программистами:

  • Что каждый программист должен знать о памяти, Ульрих Дреппер — Что нужно знать о hardware чтобы заниматься software;
  • Алгоритмы: построение и анализ, Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн — Все что нужно знать об алгоритмах;
  • Теория синтаксического анализа, перевода и компиляции (в 2-х томах), Ахо А., Ульман Дж. — Если вы хотите знать как работают компиляторы и что же на самом деле скрывается за регулярными выражениями.

Для общего развития:

  • Сила мгновенных решений, Малкольм Гладуэлл — Все что нужно знать о том, как работает мозг и что такое интуиция;
  • Outliers: The Story of Success, Malcolm Gladwell — Для понимания причин успехов и неудачи;
  • Серьезный разговор об ответственности. Что делать с обманутыми ожиданиями, нарушенными обещаниями и некорректным поведением, Кэрри Паттерсон, Джозеф Гренни — Эта книга поможет вам развить навыки, необходимые для выхода из сложных ситуаций;
  • Marketing High Technology, William H. Davidow — Книга о маркетинге высокотехнологичных продуктов;
  • Эмоциональный интеллект 2.0, Тревис Бредберри, Джин Гривз — Книга о развитии эмоционального интеллекта;
  • «Квантовая психология», Артур Уилсон — Об аналогиях и параллелях между психологией и физикой. А так же как научиться говорить так, чтобы устанавливать общий контекст и избегать недопонимания.

Для всего остального есть мы: профессия «Веб-разработчик».

Представители компании Acronis, ведущего поставщика решений для резервного копирования, специально для пользователей GeekBrains подготовили список книг, полезных для разработчика. Здесь каждый сможет найти что-нибудь для общего развития, пополнения базовых и специализированных знаний. Программистам, которые в дальнейшем видят себя предпринимателями, будет интересна тематическая подборка от Сергея Белоусова, сооснователя Runa Capital и компаний Parallels и Acronis.

Гайдар Магдануров, Вице-президент компании Acronis:

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

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

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

Весьма увлекательным и полезным чтением для разработчиком будут еще и книги Кристенсена «Дилемма инноватора» и «Showstopper!» Закери — с реальными примерами того, как известные компании создают и решают сложности во время разработки программных продуктов.

Базовые знания:

  • Алгоритмы на C++, Роберт Седжвик — Современное и исчерпывающее описание важных алгоритмов и структур данных на C++;
  • Алгоритмы на Java, Роберт Седжвик, Кевин Уэйн — Необходимый объем знаний для программиста в области алгоритмов на Java;
  • Защищенный код, Майкл Ховард, Дэвид Лебланк — Практические советы и рекомендации по защите создаваемых приложений на всех этапах процесса создания ПО.

Специализация по менеджменту:

Специализация по Product management:

Антон Енакиев, вице-президент Acronis по разработке:

Базовые знания:

  • Внутреннее устройство Microsoft Windows, Марк Руссинович, Дэвид Соломон — Руководство по внутреннему устройству и алгоритмам работы основных компонентов Windows;
  • Programming Applications for Microsoft Windows, Jeffrey Richter — Руководство по написанию приложений для Windows;
  • Программирование серверных приложений для Microsoft Windows 2000, Джеффри Рихтер, Джейсон Кларк — Руководство по созданию высокопроизводительных и надежных серверные приложения для Windows 2000;
  • Язык программирования С++, Бьерн Страуструп — Основы программирования на C++ от создателя C++;
  • Искусство программирования, Дональд Эрвин Кнут — «Библия программиста» в четырех томах.

Специализация по Windows (Specific for Windows kernel developers):

  • Windows NT File System Internals, Rajeev Nagar — Руководство по файловым системам на Windows NT;
  • Справочник по базовым функциям API Windows NT/2000, Гэри Неббет — О том, как писать приложения для Windows NT/2000;
  • Windows NT Device Driver Development, Peter G. Viscarola, W. Anthony Mason — Руководство по разработке драйверов на Windows NT;
  • Использование Microsoft Windows Driver Model, Уолтер Они — Все необходимое для понимания процесса написания драйверов;
  • Undocumented Windows NT, Prasad Dabak, Sandeep Phadke — О недосказанном в Windows NT.

Кирилл Коротаев, вице-президент Acronis по инжинирингу, Acronis Backup и Системам Хранения Данных:

Книги обязательные для прочтения системными программистами:

  • Что каждый программист должен знать о памяти, Ульрих Дреппер — Что нужно знать о hardware чтобы заниматься software;
  • Алгоритмы: построение и анализ, Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн — Все что нужно знать об алгоритмах;
  • Теория синтаксического анализа, перевода и компиляции (в 2-х томах), Ахо А., Ульман Дж. — Если вы хотите знать как работают компиляторы и что же на самом деле скрывается за регулярными выражениями.

Для общего развития:

  • Сила мгновенных решений, Малкольм Гладуэлл — Все что нужно знать о том, как работает мозг и что такое интуиция;
  • Outliers: The Story of Success, Malcolm Gladwell — Для понимания причин успехов и неудачи;
  • Серьезный разговор об ответственности. Что делать с обманутыми ожиданиями, нарушенными обещаниями и некорректным поведением, Кэрри Паттерсон, Джозеф Гренни — Эта книга поможет вам развить навыки, необходимые для выхода из сложных ситуаций;
  • Marketing High Technology, William H. Davidow — Книга о маркетинге высокотехнологичных продуктов;
  • Эмоциональный интеллект 2.0, Тревис Бредберри, Джин Гривз — Книга о развитии эмоционального интеллекта;
  • «Квантовая психология», Артур Уилсон — Об аналогиях и параллелях между психологией и физикой. А так же как научиться говорить так, чтобы устанавливать общий контекст и избегать недопонимания.

Для всего остального есть мы: профессия «Веб-разработчик».

ForCoder

Книги о алгоритмах и математике, скачать бесплатные книги, самоучители и учебники о алгоритмах и математике в хорошем качестве

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

● Решать новые задачи и повышать эффективность имеющихся решений
● Быстро находить алгоритмы для решения своих задач и выбирать наиболее подходящие
● Находить решения на языках программирования C, C++, Java, Python с помощью рекомендаций из книги
● Оценивать производительность алгоритмов и создавать условия для достижения максимальной эффективности
● Использовать наиболее подходящие структуры данных для повышения эффективности алгоритмов

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

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

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

13,206 просмотров всего, 4 просмотров сегодня

Алгоритмы. Теория и практическое применение

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

Мастер Йода рекомендует:  Выделение объекта командой Extract (Извлечение)

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

Искусство программирования. Комбинаторные алгоритмы. Том 4А

Эта книга представляет собой том 4А, поскольку сам том 4 является многотомником. Комбинаторный поиск — богатая и важная тема, и Кнут приводит слишком много нового, интересного и полезного материала, чтобы его можно было разместить в одном или двух (а может быть, даже в трех) томах. Одна эта книга включает около 1500 упражнений с ответами для самостоятельной работы, а также сотни полезных фактов, которые вы не найдете ни в каких других публикациях. Том 4А определенно должен занять свое место на полке рядом с первыми тремя томами этой классической работы в библиотеке каждого серьезного программиста.
В этом томе рассматриваются методы, позволяющие компьютерам эффективно работать с задачами гигантского размера. Рассматриваемый материал начинается с булевых функций и технологий и трюков работы с битами, затем всесторонне рассматривается генерация всех кортежей и перестановок, всех сочетаний и разбиений, и всех деревьев.
Этот многотомный труд широко известен как полное изложение информатики. В течение десятилетий первые три тома служили бесценным источником информации по теории и практике программирования для студентов, теоретиков и практиков. Ученые восхищались красотой и изяществом анализа Кнута, в то время как практикующие программисты успешно применяли его «»поваренную книгу»» для решения ежедневных задач.

4,771 просмотров всего, сегодня нет просмотров

Encyclopedia of Algorithms

This dynamic reference work provides solutions to vital algorithmic problems for scholars, researchers, practitioners, teachers and students in fields such as computer science, mathematics, statistics, biology, economics, financial software, and medical informatics.
This second edition is broadly expanded, building upon the success of its former edition with more than 450 new and updated entries. These entries are designed to ensure algorithms are presented from growing areas of research such as bioinformatics, combinatorial group testing, differential privacy, enumeration algorithms, game theory, massive data algorithms, modern learning theory, social networks, and VLSI CAD algorithms.
Over 630 entries are organized alphabetically by problem, with subentries allowing for distinct solutions. Each entry includes a description of the basic algorithmic problem; the input and output specifications; key results; examples of applications; citations to key literature, open problems, experimental results, links to data sets and downloadable code.
All entries are peer-reviewed, written by leading experts in the field—and each entry contains links to a summary of the author’s research work.
This defining reference is available in both print and online—a dynamic living work with hyperlinks to related entries, cross references citations, and a myriad other valuable URLs.

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

Алгоритмы: разработка и применение. Классика Computers Science

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

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

Регулярные выражения. Основы

Если вы программист, не имеющий опыта работы с регулярными выражениями, то данная книга — как раз то, что нужно для первого знакомства с ними. Многочисленные примеры, приведенные в книге, не только помогут вам освоить основы регулярных выражений, но и научат применять их для поиска, извлечения и преобразования фрагментов текста посредством их сопоставления с определенными символами, словами и шаблонами.
Регулярные выражения эффективно применяются во многих областях программирования. Они доступны в утилитах UNIX и таких языках программирования, как Perl, Java, javascript и C#. Прочитав книгу, вы будете знать синтаксис наиболее распространенных диалектов регулярных выражений и понимать, в каких случаях они смогут обеспечить вам значительную экономию времени.

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

Структуры данных и алгоритмы JAVA

Второе издание одной из самых авторитетных книг по программированию посвящено использованию структур данных и алгоритмов. Алгоритмы — это основа программирования, определяющая, каким образом разрабатываемое программное обеспечение будет использовать структуры данных. На четких и простых программных примерах автор объясняет эту сложную тему, предлагая читателям написать собственные программы и на практике освоить полученные знания. Рассматриваемые примеры написаны на языке Java, хотя для усвоения материала читателю не обязательно хорошо знать его — достаточно владеть любым языком программирования, например C++. Первая часть книги представляет собой введение в алгоритмизацию и структуры данных, а также содержит изложение основ объектно-ориентированного программирования. Следующие части посвящены различным алгоритмам и структурам данных, рассматриваемым от простого к сложному: сортировка, абстрактные типы данных, связанные списки, рекурсия, древовидные структуры данных, хеширование, пирамиды, графы. Приводятся рекомендации по использованию алгоритмов и выбору той или иной структуры данных в зависимости от поставленной задачи.

16,489 просмотров всего, 2 просмотров сегодня

Game Programming Algorithms and Techniques

Game Programming Algorithms and Techniques is a detailed overview of many of the important algorithms and techniques used in video game programming today. Designed for programmers who are familiar with object-oriented programming and basic data structures, this book focuses on practical concepts that see actual use in the game industry. Sanjay Madhav takes a unique platform- and framework-agnostic approach that will help develop virtually any game, in any genre, with any language or framework. He presents the fundamental techniques for working with 2D and 3D graphics, physics, artificial intelligence, cameras, and much more. Each concept is illuminated with pseudocode that will be intuitive to any C#, Java, or C++ programmer, and has been refined and proven in Madhav’s game programming courses at the University of Southern California. Review questions after each chapter help solidify the most important concepts before moving on. Madhav concludes with a detailed analysis of two complete games: a 2D iOS side-scroller (written in Objective-Cusing cocos2d) and a 3D PC/Mac/Linux tower defense game (written in C# using XNA/ MonoGame). These games illustrate many of the algorithms and techniques covered in the earlier chapters, and the full source code is available at gamealgorithms.net.
Coverage includes:
— Game time management, speed control, and ensuring consistency on diverse hardware
— Essential 2D graphics techniques for modern mobile gaming
— Vectors, matrices, and linear algebra for 3D games
— 3D graphics including coordinate spaces, lighting and shading, z-buffering, and quaternions
— Handling today’s wide array of digital and analog inputs
— Sound systems including sound events, 3D audio, and digital signal processing
— Fundamentals of game physics, including collision detection and numeric integration
— Cameras: first-person, follow, spline, and more
— Artificial intelligence: pathfinding, state-based behaviors, and strategy/planning
— User interfaces including menu systems and heads-up displays
— Scripting and text-based data files: when, how, and where to use them
— Basics of networked games including protocols and network topology

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

Алгоритмы и структуры данных. Новая версия для Оберона

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

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

Книги по алгоритмам [дубликат]

На данный вопрос уже ответили:

Ищу книгу по основам алгоритмизации. Главный требование — это простой и доступный стиль изложения материала в книге и была предназначена для новичков в этом деле. Алгоритмы — это моя самая слабая часть в программирование, поэтому я хочу поработать над ней. Поэтому прошу посоветовать книгу. Заранее благодарен за помощь.

Отмечен как дубликат участником PashaPash 3 янв ’16 в 20:42 .

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

7 ответов 7

Кормена почитайте, базовых знаний (если читать с самого начала) вообще не требуется, нам начали преподавать по первой части книги еще в 8 классе.

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

Лучше учебников (не толстенных) не видел.

Трилогия Кнута (Книга 1 — Основные алгоритмы, Книга 2 — Сортировка и поиск, Книга 3 — Получисленные алгоритмы) — эти труды могут быть достаточно сложоусоваиваемыми. я понял суть Вашего вопроса, но это хорошие книги на самом деле. Т.Кормен — Алгоритмы построение и анализ.

Алгоритмы: 132 книги — скачать в fb2, txt на андроид или читать онлайн

Алгоритмы

Слишком много книг? Вы можете уточнить книги по запросу «Алгоритмы» (в скобках показано количество книг для данного уточнения)

10 проблема Гильберта. Опровержение неразрешимости

Всем известно, что существуют тройки натуральных чисел, верных для Теоремы Пифагора. Но эти числа находили методом подбора. И если доказать, что есть некий алгоритм нахождения этих троек чисел, то возможно утверждение о том, что 10 проблема Гильберта неразрешима ошибочно..…

Стратегии решения математических задач: Различные подходы к типовым задачам

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

Экстро. Часть 1. Зов генетических воспоминаний

Раз в сто лет, в русской семье Пауковых рождается долгожданный ребёнок, унаследовавший дар видеть события из генетических воспоминаний предков. Согласно их древней традиции он должен находить «кинжал избранного», следуя воспоминаниям своего генетически-избранного предка. Кинжал служил символом объед…

Хакни рутину. Как алгоритмы помогают справляться с беспорядком, не тупить в супермаркете и жить прощ

Ежедневные задачи, вроде покупки продуктов или сортировки почты, часто отнимают куда больше сил и времени, чем хотелось бы. Математик Али Альмоссави, автор бестселлера «Нелепые доводы», предлагает оригинальный подход: использовать алгоритмы! Благодаря понятным графикам и схемам даже прирожденный гум…

Модели и алгоритмы расчета устройств для гашения пульсаций газообразной среды в трубопроводных систе

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

Робастное управление с компенсацией возмущений

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

Совместное использование предварительного обучения и дескрипторов в системе распознавания образов

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

Делимость и простые числа

Восьмая книжка серии «Школьные математические кружки» посвящена основным понятиям и фактам, которые связаны с делимостью целых чисел: признакам делимости, простым и составным числам, алгоритму Евклида, основной теореме арифметике и т. п. Она предназначена для занятий со школьниками 7–9 классов. В к…

Математическая логика и теория алгоритмов для программистов

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

Гибридная модель оценки рисков в информационных системах

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

Оконные функции для гармонического анализа сигналов

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

Модели и алгоритмы в системах автоматизированного перевода текста

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

Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции

Книга написана по материалам лекций и семинаров, проводившихся авторами для студентов младших курсов мехмата МГУ. В ней рассказывается об основных понятиях общей теории вычислимых функций (вычислимость, разрешимость, перечислимость, универсальные функции, нумерации и их свойства, m-полнота, теорема…

Модели параллельного программирования

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

Статистический анализ моделей с переменной структурой

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

Информатика. Программирование в примерах и задачах

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

Параллельное программирование на C++ в действии. Практика разработки многопоточных программ

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

Модернизация программно-математического комплекса для сравнения шкал времени эталонов времени и част

Описывается модернизированный программно-математический комплекс для обработки результатов измерений с приемников сигналов космических навигационных систем. Разработано новое программное обеспечение, усовершенствована методика сравнения шкал времени территориально удаленных друг от друга эталонов в…

Эволюционное моделирование и его применение

Рассматриваются принципы и методы эволюционного моделирования. Особое внимание уделяется главному методу эволюционного моделирования – генетическому алгоритму. Приводятся конкретные примеры его применения к решению различных задач оптимизации. Монография предназначена для специалистов в области и…

Использование технологии табличного моделирования генетических алгоритмов для решения задач оптимиза

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

Моделирование устройства имитозащиты контролируемых объектов с повышенной структурной скрытностью си

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

Поисковая адаптация. Теория и практика

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

Мастер Йода рекомендует:  Где программисту-новичку найти упражнения и идеи для проектов

Цифровое моделирование оптических отражательных характеристик целей в режиме реального времени

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

Модель видеограмметрической координатно-измерительной системы

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

Алгоритм оценки параметров линейной множественной модели регрессии по минимаксному критерию

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

Применение знаний для синхронизации агентов в параллельном дискретно-событийном моделировании

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

Методы инженерного синтеза сложных систем управления. Часть 2

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

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

Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию пр…

Численный анализ элементов конструкций машин и приборов

Изложены основные этапы расчетов на ЭВМ напряженного и деформированного состояний сложных стержневых, оболочечных и трехмерных конструктивных элементов в геометрически и физически нелинейной постановке. Особое внимание уделено разработке новой методики расчета и проектирования, позволяющей за счет …

Оценка эффективности поисковых операций

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

Практикум программирования на Turbo Pascal. Задачи, алгоритмы и решения

В книге содержится более 200 задач по программированию в среде Turbo Pascal, снабженных решениями. В начале каждой главы дается соответствующий справочный материал. Внутри глав задачи расположены в порядке возрастания трудности. Большое внимание уделено графическим построениям. Последняя глава сод…

Лекции по математической логике и теории алгоритмов

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

Математика, компьютер, прогноз погоды и другие сценарии математической физики

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

Лекции по математической логике и теории алгоритмов. Часть 1. Начала теории множеств

Книга написана по материалам лекций и семинаров, проводившихся авторами для студентов младших курсов мехмата МГУ. В ней рассказывается об основных понятиях «наивной теории множеств» (мощности, упорядоченные множества, трансфинитная индукция, ординалы). Изложение рассчитано на учеников математичес…

Задачи по дискретной математике

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

Программная реализация моделей оптических систем для проектирования осветительных приборов

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

Труды Евразийского общества генетической генеалогии. Генетическая история народов Евразии

Труды Евразийского общества генетической генеалогии (сборник статей по популяционной генетике народов Евразии, 2015—2020 годы). …

Взвешивания и алгоритмы: от головоломок к задачам

Пятая книжка серии «Школьные математические кружки» посвящена задачам о взвешиваниях и предназначена для занятий со школьниками 6–9 классов. В неё вошли разработки семи занятий математического кружка с подробно разобранными примерами различной сложности, задачами для самостоятельного решения и мето…

Разработка структуры быстродействующего декодера БЧХ-кода (15, 7, 5) на основе метода циклического д

Авторами приведено общее описание метода циклического декодирования БЧХ-кода. Представлена структура декодера БЧХ-кода (15, 7, 5), исправляющего двукратные независимые ошибки на основе метода циклического декодирования с применением классического алгоритма деления полиномов и последовательного вычи…

Алгоритмы. Разработка и применение

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

Алгебра и теория чисел. Сборник задач для математических школ

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

Алгоритмы. Теория и практическое применение

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

Динамическое программирование в экономических задачах. Учебное пособие

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

Классификация объектов с использованием метода ранжирования и генетического алгоритма

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

Алгоритм сжатия гиперспектральных аэрокосмических изображений с учетом междиапазонной корреляции

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

Программирование: теоремы и задачи

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

Алгоритмы сегментации кровеносных сосудов сетчатки глаза

Разработано и описано два алгоритма сегментации кровеносных сосудов: на основе медианного фильтра и серии фильтров Габора. Также описаны предварительные этапы обработки изображений: улучшение контрастности между кровеносными сосудами и фоном и удаление фона. Приведены результаты тестирования эффект…

Универсальное кодирование. Теория и алгоритмы

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

Элементы математики в задачах (с решениями и комментариями). Часть I

Книга содержит один из курсов математики в задачах, на протяжении ряда лет используемых в 57 школе города Москвы. В представленном виде курс преподавался классу «В» 2008 года выпуска. Часть 1 состоит из тем, изучавшихся в 8 классе. Задания снабжены решениями и комментариями. Многие сюжеты (листки)…

Вычислительные технологии в задачах механики жидкости и газа

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

Вычисления в Matlab

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

Программирование – это так просто. Программирование – это так сложно. Современный учебник программир

Книга представляет собой практический курс для обучения программированию, основную часть которого составляет подборка около 200 задач. В ней делается попытка показать, как обучить программированию в школе за 16 уроков. Рассмотрены все алгоритмы из перечня, входящего в «Требования к уровню подготовк…

Fast methods for jackknifing inequality indices

The jackknife is a resampling method that uses subsets of the original database by leaving out one observation at a time from the sample. The paper develops fast algorithms for jackknifing inequality indices with only a few passes through the data. The number of passes is independent of the number …

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

Предложен инструментарий, состоящий из сочетаний моделей колоколообразных трендов жизненного цикла продукта (ЖЦП), пяти различных структур моделей колебательной компоненты, а также методов их идентификации на основе генетического алгоритма и моделей авторегрессии – скользящего среднего (ARMA-моделе…

Алгоритмизация прикладных задач. Учебное пособие

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

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

От «Титаника» до «Фукусимы». Алгоритмы техногенных катастроф

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

Язык программирования С. Лекции и упражнения

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

Программное обеспечение магнитооптической установки с распознаванием регистрируемых изображений

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

Математический анализ генетического кода

В монографии на основе изучения генов установлены новые свойства генетического кода и вычислены важнейшие его интегральные характеристики; выделены две группы таких характеристик. Установлена взаимосвязь полученных характеристик в этих группах. Проанализирован известный к настоящему времени набор г…

Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов

Автор книги «Наиболее эффективное использование C++» предлагает 35 новых способов улучшения ваших программ. Основываясь на своем многолетнем опыте, С. Мейерс объясняет, как писать наиболее эффективные программы: надежные, совместимые, переносимые и пригодные для повторного использования, то есть пр…

Алгоритм поиска приближенной композиционной модели Липшиц-ограниченной сюръективной функции

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

В книге рассмотрены фундаментальные положения программирования: конечная величина и конструируемые на ее основе различные типы данных; управляющие конструкции – элементарные составляющие любого алгоритма и основа управления вычислительным процессом; структуризация задач как основополагающий механиз…

Дискретная математика в примерах и задачах

Учебное пособие составлено на основании материалов лекционного курса, содержит краткую теорию, варианты заданий и примеры решения по следующим разделам дискретной математики: множества, декартовы произведения, соответствия, отношения, булевы функции, теория алгоритмов, предикаты, комбинаторика, кон…

Искусство поиска решения в нестандартной задаче

Книга является заключительной в авторской трилогии книг после «Современное программирование с нуля» и «Искусство алгоритмизации». Эта книга о том, что делать с задачей, если её решение нельзя вычитать в учебнике. Иначе говоря, – эта книга о творчестве в программировании. В тексте вы не найдет…

ATDD – разработка программного обеспечения через приёмочные тесты

Применяя методику разработки через приемочные тесты (ATDD), заказчики, разработчики и тестировщики получают возможность совместно сформулировать тестопригодные требования, что позволяет создавать высококачественное программное обеспечение в сжатые сроки. Однако на практике многие не понимают, в чем…

Учебное пособие предназначено для методической поддержки естественно-научных дисциплин регионального вузовского компонента «Компьютерная подготовка» и «Компьютерный практикум» для студентов специальности 080505 «Управление персоналом». …

Применение нейросетевых ассоциативных машин для обнаружения вторжений в локальную сеть

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

Стохастический алгоритм поиска глобального минимума функции

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

Четыре алгоритмических лица случайности

Брошюра написана по материалам лекции, прочитанной автором 23 июля 2005 года в летней школе «Современная математика» в Дубне. Она посвящена формализации такого интуитивно ясного термина, как «случайность». В брошюре рассматривается четыре разных подхода к этому понятию, основанных на характерных св…

Совместное распределение биржевых индексов: методологические аспекты построения и выбора копулярных

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

Повышение точности обнаружения контура на цифровых изображениях объектов шарообразной формы

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

Инкубирование инновационных проектов и система менторства

В статье рассмотрен зарубежный опыт взаимодействия ментора и команды проекта, выявлены основные области и особенности их взаимодействия. На основе анализа результатов опроса резидентов ГУ «Нижегородский инновационный бизнес-инкубатор» выявлены критерии и основные характеристики, которым должен отве…

Моделирование инструкций поддержки транзакционной памяти в современных центральных процессорах

Аппаратная поддержка транзакционной памяти становится доступной в новейших процессорах. В статье описывается реализация набора инструкций RTM в функциональном симуляторе Wind River® Simics. Цель работы – обеспечение корректного исполнения новых инструкций и сохранение высокой скорости работы симуля…

Математические модели с конечной точностью

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

Читаем Тьюринга. Путешествие по исторической статье Тьюринга о вычислимости и машинах Тьюринга

Книга, которую вы держите в руках, принадлежит перу известного американского популяризатора Чарлза Петцольда. В ней автор исследует главную работу Алана Тьюринга, посвященную проблеме разрешимости. Именно в этой работе впервые появились знаменитые машины Тьюринга, ставшие на многие годы универсальн…

Алгоритмы компьютерной арифметики

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

Параллельная версия жадного алгоритма кластеризации

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

Основы теории кодирования

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

Алгоритмы — 17 книг

Подборка преимущественно основана на ответах с Тостера, описания книг — оттуда же.
раз два три четыре

ISBN: 5-8459-0080-8, 0-201-89683-4
Год издания: 2007
Издательство: Вильямс
Серия: Искусство программирования
Язык: Русский

Вообще прежде чем читать Кнута нужно почитать его «Конкретную математику»

lilacbush 21 сентября 2014 г., 10:35

Мастер Йода рекомендует:  6 книг по протоколам TCPIP
ISBN: 978-5-9775-0560-4, 978-1-84800-069-8
Год издания: 2011
Издательство: БХВ-Петербург
Язык: Русский

Лично мне очень нравится как пишет Скиена

Скиена мне не понравился — довольно поверхностен, и русский перевод довольно хреновый.

lilacbush 21 сентября 2014 г., 10:38

ISBN: 978-5-8459-1650-1, 978-0-321-60633-4
Год издания: 2011
Издательство: Вильямс
Язык: Русский

Два Седживика «Алгоритмы на Java» и «Алгоритмы на С++» — в принципе одинаковые. Кормена будет тоже «много» как и Кнута, начните с Седжвика.

lilacbush 21 сентября 2014 г., 10:39

ISBN: 978-5-8459-1781-2
Год издания: 2012
Издательство: Вильямс
Язык: Русский

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

Книга Седжвика и Уэйна «Алгоритмы на Java» является классическим справочным руководством в котором содержится необходимый объем знаний для программиста в области алгоритмов,…

ISBN: 978-5-8459-1868-0
Год издания: 2014
Издательство: Вильямс
Язык: Русский

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

Эта книга написана признанным авторитетом в области компьютерных алгоритмов — профессором информатики Томасом Корменом, чей труд «Алгоритмы: построение и анализ», написанный в…

Подборка книг по Алгоритмам

1. Генри С. Уоррен — Алгоритмические трюки для программистов, 2-е издание
2. Дасгупта С., Пападимитриу Х., Вазирани У. — Алгоритмы
3. Дж. Макконелл — Анализ алгоритмов. Вводный курс, 2-е дополненное издание
4. Бёрд Р. — Жемчужины проектирования алгоритмов. Функциональный подход
5. Р. Лафоре — Структуры данных и алгоритмы в Java, 2-е издание
6. Р. Седжвик, К. Уэйн — Алгоритмы на Java, 4-е издание
7. Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн — Алгоритмы. Построение и анализ. Издание 3-е
8. Т. Кормен — Алгоритмы. Вводный курс

20 самых рекомендуемых книг для программистов на русском языке

Авторы проекта Dev-Books проанализировали миллионы вопросов и ответов в крупнейшем сообществе программистов Stack Overflow. Всё для того, чтобы найти книги, на которые чаще всего ссылаются разработчики.

В общий список вошло 5 720 книг. Ниже вы найдёте 20 самых упоминаемых из них, которые когда-либо выходили на русском.

По просьбе Лайфхакера своими мнениями насчёт некоторых изданий поделились отечественные эксперты.

1. «Эффективная работа с унаследованным кодом», Майкл К. Физерс

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

2. «Приёмы объектно-ориентированного проектирования. Паттерны проектирования», Эрих Гамма и другие

Классика для программиста. Первая книга, посвящённая именно шаблонам.

Леонид Выговский, системный архитектор IT-компании LiveTex

— Издание уже 20 лет переиздаётся в изначальном виде. В этом, конечно, главный недостаток книги: некоторые шаблоны уже неактуальны. Думаю, её полезно читать уже после других, более современных, книг по паттернам проектирования. Тем более что она написана сухим академическим языком. Для понимания паттернов эта книга не must read, но её прочтение добавляет крутости в глазах коллег-программистов. 🙂 Начинать я советую с «Паттернов проектирования» (Head First Design Patterns).

3. «Чистый код. Создание, анализ и рефакторинг», Роберт К. Мартин

Интересная, но во многом спорная книга о том, как писать понятный и поддерживаемый код.

Леонид Выговский, системный архитектор IT-компании LiveTex

— Почему спорная? Книг про написание кода уже огромное количество, и часть приёмов являются общепризнанными. Но каждый автор добавляет что-то своё. Лично для меня мнение Боба Мартина кажется иногда странным и противоречащим другим источникам. Не must read, но прочитать всё же стоит. Качество кода после прочтения становится лучше.

4. «Предметно-ориентированное проектирование», Эрик Эванс

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

Леонид Выговский, системный архитектор IT-компании LiveTex

— Из этой книги выросли концепции СQRS, BDD, onion-architecture и много других интересных идей. Единственный недостаток: книга насквозь теоретическая. Практическую пользу она приобрела только с выходом книги Вона Вернона «Реализация методов предметно-ориентированного проектирования» (Implementing Domain Driven Design). Поэтому читать их надо последовательно, сразу друг за другом.

5. «JavaScript: сильные стороны», Дуглас Крокфорд

Обязательная книга для веб-разработчиков. В ней Дуглас Крокфорд рассказывает о преимуществах языка JavaScript и учит грамотно их применять для создания эффективного кода.

6. «Шаблоны корпоративных приложений», Мартин Фаулер и другие

Книга описывает базовые принципы проектирования ПО для корпоративных платформ.

7. «Совершенный код. Мастер-класс», Стив Макконнелл

Классическая книга о том, как писать код лучше.

Михаил Осотов, директор по производству «Центра высоких технологий»

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

8. «Рефакторинг. Улучшение существующего кода», Мартин Фаулер и другие

Из серии книг по написанию понятного и качественного кода, «Рефакторинг» — лучшая.

Леонид Выговский, системный архитектор IT-компании LiveTex

Выговский: «Она не только показывает хороший код, но и на примере плохого объясняет, чем именно он плох. Эта книга — must read для всех. Причём чем раньше вы её прочтёте, тем лучше. Качество кода после прочтения сильно вырастет».

Если книгу Фаулера вы уже прочли, обратите внимание на «Рефакторинг с использованием шаблонов» (Refactoring to Patterns) Джошуа Кериевски, которую рекомендует Михаил Осотов.

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

Михаил Осотов, директор по производству «Центра высоких технологий»

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

9. «Паттерны проектирования», Эрик Фримен, Элизабет Фримен и другие

Серия Head First, на мой взгляд, идеально подходит для новичков в области разработки ПО.

Михаил Осотов, директор по производству «Центра высоких технологий»

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

10. «Язык программирования C», Брайан У. Керниган, Деннис М. Ритчи

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

11. «Эффективное использование С++. 55 верных способов улучшить структуру и код ваших программ», Скотт Майерс

Книга содержит советы по проектированию программ, работе с шаблонами и управлению ресурсами, а также другие рекомендации по созданию качественного ПО на языке С++.

12. «Экстремальное программирование: разработка через тестирование», Кент Бек

Автор на примерах описывает методику разработки ПО, которая предполагает тестирование программ ещё до написания их кода.

13. «Алгоритмы. Построение и анализ», Томас Х. Кормен и другие

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

14. «Регулярные выражения», Джеффри Фридл

Издание об эффективной работе с текстом в Perl, PHP, Java, Python, Ruby и других языках программирования.

15. «CLR via C#. Программирование на платформе Microsoft.NET Framework 4.5 на языке C#», Джеффри Рихтер

Классический учебник по разработке приложений для платформы Microsoft, в том числе с помощью Silverlight, Windows Presentation Foundation, ASP.NET и прочих технологий компании.

16. «Современное проектирование на C++», Андрей Александреску

Книга для опытных программистов на C++. Автор предлагает новый подход к разработке, сочетающий метапрограммирование шаблонов, обобщённое программирование и объектно-ориентированное программирование на этом языке.

17. «Microsoft ASP.NET 2.0. Базовый курс», Дино Эспозито

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

18. «Шаблоны тестирования xUnit. Рефакторинг кода тестов», Джерард Месарош

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

19. «Компиляторы. Принципы, технологии и инструментарий», Альфред В. Ахо и другие

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

20. «Инфраструктура программных проектов. Соглашения, идиомы и шаблоны для многократно используемых библиотек .NET», Кржиштоф Цвалина, Брэд Абрамс

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

Полный рейтинг англоязычных книг доступен на сайте Dev-Books. Там же можно просмотреть списки самых популярных книг на определённые темы, будь то Java, Database Design или CSS.

5 книг для начинающих программистов

Полезная подборка, чтобы разобраться в C++, JAVA, Python и узнать про код Грея.

Часто тем, кто всерьёз занимается олимпиадной информатикой, рекомендуют прочесть трёхтомник Дональда Кнута. Кстати, недавно вышел четвёртый том. Но всё же перед тем как взяться за Кнута, советую обратить внимание на книгу Роберта Седжвика «Фундаментальные алгоритмы C++. Анализ. Структуры данных. Сортировка. Поиск».

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

Герберт Шилдт — один из самых опытных авторов книг по изучению языков программирования. Если вы планируете изучать Java, стоит начать именно с этой книги. Шилдт пишет простым языком, последовательно и структурированно.

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

Приятным дополнением станут главы о Swing и JavaFX.

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

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

Эта удивительная книга построена всего лишь на одной известной задаче про Ханойские башни. Несмотря на это, она содержит главы и про битовую арифметику, и про код Грея. Все примеры приводятся на языке Pascal.

Автор онлайн-курса программирования на Python в Фоксфорде, волонтёр международных workshop для ACM

Автор онлайн-курса разработки игровых приложений под Android на языке JAVA в Фоксфорде, преподаватель в IT-школе Samsung

Учебник по алгоритмам

10.07.2011, 20:50

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

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

Теория по алгоритмам
Хотелось бы спросить у тех кто занимался изучением алгоритмов, какие ресурсы/книги вы можете.

Тест по алгоритмам
такой нехитрый тест нужно сделать на завтра. Буду рад помощи

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

11.07.2011, 22:58 2 12.07.2011, 07:29 [ТС] 3 18.07.2011, 09:37 4

lamed, уточняю.
Кормен — фундаментальнейший труд. Алгоритмы описываются на псевдокоде.
Левитин — то же самое, но для студента. Алгоритмы на псевдокоде. Несколько отличная от других книжек классификация алгоритмов.

Вирт — просто великолепная книжка! Алгоритмы — на Компонентном паскале. К книжке прилагается сидюк и массой дистрибов BlackBox Component Builder — это среда с Компонентным паскалем. Более того, переводчик согласовал все замеченные опечатки и ошибки с самим Виртом — перевод просто классный! И все примеры из книжки можно открыть в среде BlackBox и посмотреть, как работают. По соотношению цена-качество — лучшая книжка.

Ахо — книжка несколько устарела. Алгоритмы — на паскале. Но есть некоторые темы, котоорые не рассмотрены, например, в Вирте.

Добавлю: Роберт Сэджвик. Алгоритмы на С++. Отличная книжка! Алгоритмы — на С++ в объектно-ориентированном стиле. Тоже рекомендую, как и Вирта.

18.07.2011, 09:37
18.07.2011, 11:48 [ТС] 5
18.07.2011, 15:06 6

Решение

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

Дж. Макконнелл. Основы современных алгоритмов. 2-е дополненное издание. — М.: Техносфера, 2004.
Книжка весьма неплохая. Алгоритмы написаны на псевдокоде.

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

Бакнелл Дж. Фундаментальные алгоритмы и структуры данных в Delphi. Библиотека программиста. — М.: ООО «ДиасСофтЮП»; СПб.: Питер, 2006.
Название говорит само за себя. Программы — на Delphi. Отличается прекрасным изложением. Есть вещи, отсутствующие в других книжках. Например, бинарный поиск на списках.

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

Красиков И.В., Красикова И.Е. Алгоритмы. Просто как дважды два. — М.: Эксмо, 2006.
Маленькая книжка-введение в алгоритмы на С++.

Каррано Ф.М., Причард Дж.Дж. Абстракция данных и решение задач на С++. Стены и зеркала, 3-е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2003.
Хорошая книжка. Неплохоо описаны рекусривные алгоритмы. Программы на С++

Фридман А., Кландер Л., Михаэлис М., Шилдт Х. С/С++. Архив программ – М.: ЗАО «Издательство БИНОМ», 2001.
Сборник готовых программ на С++ — на самые разные темы. От компиляции до экономики — много чего написано. И по стандартным структурам данных тоже весьма мното программ тут есть.

Хэзфилд Р., Кирби Л. и др. Искусство программирования на С. Фундаментальные алгоритмы, структуры данных и примеры приложений. Энциклопедия программиста: Пер. с англ. – К.: Издательство «ДиаСофт», 2001.
Алгоритмы и структуры данных на С, без классов, все на указателях. Огромное количн6ество самых разнообразных тем и программ.

Есть пара свежих книжек:
Уэйс М. А. Организация структур данных и решение задач на С++. — М.: ЭКОМ Паблишера, 2008.
Книжка тоже весьма хороша. Заточена под С++ и STL. Рассматриваются самые разные темы, рекурсия в том числе, компиляция, сжатие по Хаффмену, моделирование.
Стивен Скиена. Алгоритмы. Руководство по разработке. — СПб.: БХВ-Петербург, 2011.
Эту еще не читал, но на РСДН очень хвалят. Алгоритмы пишутся на псевдокоде типа С.

Добавить комментарий