Кормен алгоритмы: Алгоритмы. Вводный курс от Томас Х. Кормен
современный подход» и другие книги по свободной цене / Хабр
Недавно ребята из books.ru в очередной раз пополнили раздел электронных книг, предлагаемых по свободной цене. Акция продажи новых электронных изданий будет идти до 1 июня (судя по опыту прошлых акций свободная цена на некоторые книги сохранится и в будущем).
Но в любом случае, я бы не стал писать этот пост, если бы не увидел, что коллекция пополнилась настоящими бриллиантами. «Алгоритмы: построение и анализ (CLRS), 2-е издание» (Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн) (читал эту книгу в печатном варианте и могу сказать, что перевод просто отменный). Искусственный интеллект: современный подход (AIMA-2), 2-е издание (Стюарт Рассел, Питер Норвиг).
С момента первого анонса о свободной цене в раздел добавились книги Нильсена, Брукса, Фаулера, Прата, Степанова, Спольски, Физерса, Александреску и др. Под катом находятся около 40 новых книг, которые больше всего заслуживают внимания (спрятаны под спойлер).
Книги по свободной цене (основное, алфавитный порядок)Android 4 для профессионалов. Создание приложений для планшетных компьютеров и смартфонов (Сатия Коматинени, Дэйв Маклин)
Objective-C. Карманный справочник, 2-е издание (Дэвид Чиснолл)
Oracle Database 11g: руководство администратора баз данных (Сэм Р. Алапати)
SQL. Библия пользователя, 2-е издание (Алекс Кригель, Борис Трухнов)
Scrum: гибкая разработка ПО (Signature Series) (Майк Кон)
Spring 3 для профессионалов (Кларенс Хо, Роб Харроп)
Web-дизайн: удобство использования Web-сайтов (Якоб Нильсен, Хоа Лоранжер)
Алгоритмы: построение и анализ, 2-е издание (Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн)
Анализ и проектирование информационных систем с помощью UML 2.0 (Лешек А. Мацяшек)
Веб-дизайн: анализ удобства использования веб-сайтов по движению глаз (Якоб Нильсен, Кара Перниче)
Бережливое производство программного обеспечения. От идеи до прибыли (Мэри Поппендик, Toм Поппендик)
Введение в теорию автоматов, языков и вычислений, 2-е издание (Джон Хопкрофт, Раджив Мотвани, Джеффри Ульман)
Гибкое тестирование: практическое руководство для тестировщиков ПО и гибких команд (Signature Series) (Лайза Криспин, Джанет Грегори)
Инфраструктура программных проектов: соглашения, идиомы и шаблоны для многократно используемых библиотек .NET (Кржиштоф Цвалина, Брэд Абрамс)
Искусство дизассемблирования (Крис Касперски)
Начала программирования (Александр Степанов, Пол Мак-Джонс)
Неожиданное в математике и его связь с авариями и катастрофами. 4-е изд. (Петров Ю.П.)
Непрерывная интеграция: улучшение качества программного обеспечения и снижение риска (Signature Series) (Поль М. Дюваль, Стивен М. Матиас III, Эндрю Гловер)
Непрерывное развертывание ПО: автоматизация процессов сборки, тестирования и внедрения новых версий программ (Signature Series) (Джез Хамбл, Дейвид Фарли)
Новые сложные задачи на C++. Серия «C++ In-Depth» (Герб Саттер)
Операционная система UNIX. 2-е изд. (Робачевский А.М.)
Предметно-ориентированные языки программирования (Signature Series) (Мартин Фаулер)
Применение DDD и шаблонов проектирования: проблемно-ориентированное проектирование приложений с примерами на C# и .NET (Джимми Нильссон)
Проектирование процесса проектирования: записки компьютерного эксперта (Фредерик П. Брукс)
Профессиональное программирование. Системный подход. 2-е изд. (Одинцов И.О.)
Расширения OpenGL. (Боресков А.В.)
Рефакторинг баз данных: эволюционное проектирование (Signature Series) (Скотт В. Эмблер, Прамодкумар Дж. Садаладж)
Решение сложных задач на C++. Серия «C++ In-Depth» (Герб Саттер)
Руководство Джоэла Спольски по подбору программистов и управлению ими (Джоэль Спольски)
Современное проектирование на C++. Серия «C++ In-Depth» (Андрей Александреску)
Стандарты программирования на С++. Серия «C++ In-Depth» (Герб Саттер, Андрей Александреску)
Техника отладки программ без исходных текстов (Крис Касперски)
Шаблоны интеграции корпоративных приложений (Signature Series) (Грегор Хоп, Бобби Вульф)
Шаблоны тестирования xUnit: рефакторинг кода тестов (Signature Series) (Джерард Месарош)
Эффективная работа с унаследованным кодом (Майкл Физерс)
Язык программирования C. Лекции и упражнения, 5-е издание (Стивен Прата)
Язык программирования Java и среда NetBeans. 3-е изд. (Монахов Вадим Валериевич)
Языки программирования и методы трансляции (Опалева Э.А.)
Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы
приобрести
Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы
скачать (7725.5 kb.)
Доступные файлы (1):
- Смотрите также:
- Кормен Т.Х., Лейзерсон Ч.И., Ривест Р.Л., Штайн К. Алгоритмы: Построение и анализ, 1-е издание (Документ)
- Кормен Т.Х., Лейзерсон Ч.И., Ривест Р. Л., Штайн К. Алгоритмы: Построение и анализ, 2-е издание (Документ)
- Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: Построение и анализ (Документ)
- Хиценко В.П., Шапошникова Т.А. Практикум на ЭВМ. Алгоритмы (Документ)
- Бобцов А.А., Болтунов Г.И. и др. Управление непрерывными и дискретными процессами (Документ)
- Бобцов А.А., Болтунов Г.И. и др. Управление непрерывными и дискретными процессами (Документ)
- Саврасов Ю.С. Алгоритмы и программы в радиолокации (Документ)
- Губарени Н.М. Вычислительные методы и алгоритмы малоракурсной компьютерной томографии (Документ)
- Скиена Стивен. Алгоритмы. Руководство по разработке (Документ)
- Кристофидес Н. Теория графов. Алгоритмический подход (Документ)
- Ахо А., Хопкрофт Дж., Ульман Дж. Структуры данных и алгоритмы (Документ)
- Лосев В.В. Микропроцессорные устройства обработки информации. Алгоритмы цифровой обработки (Документ)
n1.doc
Оглавление
1 Введение 7
- Алгоритмы 7
- Анализ алгоритмов 11
- Построение алгоритмов 15
- Принцип «разделяй и властвуй» 16
- Анализ алгоритмов типа «разделяй и властвуй» 17
1 Математические основы анализа алгоритмов 24
Введение25
2 Скорость роста функций 26
- Асимптотические обозначения 26
- Стандартные функции и обозначения 30
3 Суммирование 39
- Суммы и их свойства 39
- Оценки сумм 43
4 Рекуррентные соотношения 49
- Метод подстановки 50
- Преобразование в сумму 53
- Общий рецепт 56
4. 4 Доказательство Теоремы 4.1 59
- Случай натуральных степеней 59
- Целые приближения сверху и снизу 63
5 Множества 71
- Множества 71
- Отношения 76
- Функции 79
- Графы 82
- Деревья 87
- Деревья без выделенного корня 87
- Деревья с корнем. Ориентированные деревья . 89
- Двоичные деревья. Позиционные деревья … 91
Комбинаторика и вероятность 96
- Подсчёт количеств 96
- Вероятность 102
6.2.1. Дискретное распределение вероятностей . . . 103
- Дискретные случайные величины 108
- Геометрическое и биномиальное распределения …. 113
- Хвосты биномиального распределения 118
- Вероятностный анализ 123
- Парадокс дня рождения 123
- Шары и урны 125
- Участки повторяющихся исходов 126
II Сортировка и порядковые статистики 132
Введение133
7 Сортировка с помощью кучи 136
- Кучи 136
- Сохранение основного свойства кучи 138
- Построение кучи 140
- Алгоритм сортировки с помощью кучи 143
- Очереди с приоритетами 143
8 Быстрая сортировка 148
- Описание быстрой сортировки 148
- Работа быстрой сортировки 151
- Вероятностные алгоритмы быстрой сортировки . . . 155
- Анализ быстрой сортировки 157
- Анализ наихудшего случая 157
- Анализ среднего времени работы 158
9 Сортировка за линейное время 166
- Нижние оценки для сортировки 166
- Сортировка подсчётом 169
- Цифровая сортировка 171
- Сортировка вычерпыванием 174
10 Медианы и порядковые статистики 180
- Минимум и максимум 181
- Выбор за линейное в среднем время 182
- Выбор за линейное в худшем случае время 185
III Структуры данных 192
Введение193
11 Элементарные структуры данных 197
- Стеки и очереди 197
- Связанные списки 201
- Реализация указателей и записей с несколькими полями206
- Представление корневых деревьев 210
12 Хеш-таблицы 217
- Прямая адресация 217
- Хеш-таблицы 219
- Хеш-функции 225
- Деление с остатком 226
- Умножение 227
- Универсальное хеширование 228
12. 4. Открытая адресация 231
13 Двоичные деревья поиска 242
- Что такое двоичное дерево поиска? 243
- Поиск в двоичном дереве 245
- Добавление и удаление элемента 248
13.4 Случайные двоичные деревья поиска 252
14 Красно-чёрные деревья 262
- Свойства красно-чёрных деревьев 262
- Вращения 264
- Добавление вершины 267
- Удаление 271
15 Пополнение структур данных 280
- Динамические порядковые статистики 280
- Общая схема работы с дополнительной информацией 285
- Деревья промежутков 288
IV Методы построения и анализа алгоритмов 296
Введение297
16 Динамическое программирование 299
- Перемножение нескольких матриц 300
- Когда применимо динамическое программирование . 307
- Наибольшая общая подпоследовательность 312
- Оптимальная триангуляция многоугольника 317
17 Жадные алгоритмы 326
- Задача о выборе заявок 326
- Когда применим жадный алгоритм? 330
- Коды Хаффмена 333
-, 17.4 Теоретические основы жадных алгоритмов 341
- Матроиды 341
- Жадные алгоритмы для взвешенного матроида343
: 17.5 Задача о расписании 346
18 Амортизационный анализ 352
- Метод группировки 353
- Метод предоплаты 356
- Метод потенциалов 359
- Динамические таблицы 362
- Расширение таблицы 362
- Расширение и сокращение таблицы 365
V Более сложные структуры данных 372
Введение373
19 Б-деревья 376
- Определение Б-дерева 379
- Основные операции с Б-деревьями 381
- Удаление элемента из Б-дерева 388
20 Биномиальные кучи 394
20. 1. Биномиальные деревья и биномиальные кучи 395
- Биномиальные деревья 395
- Биномиальные кучи 397
20.2. Операции с биномиальными кучами 399
20.2.1. Объединение двух куч 400
21 Фибоначчиевы кучи 413
- Строение фибоначчиевой кучи 414
- Операции, предусмотренные для сливаемых куч . . . 416
- Уменьшение ключа и удаление вершины 425
- Оценка максимальной степени 429
22 Системы непересекающихся множеств 434
- Операции с непересекающимися множествами …. 434
- Реализация с помощью списков 437
22.2.1. Программы 441
23 Алгоритмы на графах 452
23.1. Основные алгоритмы на графах 453
- Представление графов 453
- Поиск в ширину 456
- Поиск в глубину 464
- Топологическая сортировка 471
- Сильно связные компоненты 473
24 Минимальные покрывающие деревья 481
- Построение минимального остова 482
- Алгоритмы Крускала и Прима 486
25 Кратчайшие пути из одной вершины 493
- Кратчайшие пути и релаксация 497
- Алгоритм Беллмана-Форда 507
- Кратчайшие пути в ациклическом ориентированном
графе 510 - Ограничения на разности и кратчайшие пути . … 512
26 Кратчайшие пути для всех пар вершин 522
26.1. Алгоритм Флойда-Уоршолла 529
27 Максимальный поток 546
- Потоки в сетях 547
- Метод Форда-Фалкерсона 552
- Максимальное паросочетание в двудольном графе . . 562
- Алгоритм проталкивания предпотока 565
- Алгоритм поднять-и-в-начало 574
28 Сортирующие сети 586
- Сети компараторов 587
- Правило нуля и единицы 590
- Битонический сортировщик 592
- Сливающая сеть 594
- Сортирующая сеть 596
29 Арифметические схемы 601
29.1. Схемы из функциональных элементов 602
- Функциональные элементы 602
- Схемы из функциональных элементов 603
- Сумматор 603
- Глубина схемы 604
- Размер схемы 605
- Упражнения 605
29. 2. Схемы для сложения 605
- Каскадное сложение 606
- Сложение с предвычислением переносов …. 607
- Вычисление типов переноса с помощью парал
лельной префиксной схемы 608 - Сумматор с предвычислением переносов:
окончание 609 - Сложение с запоминанием переносов 610
29.3. Схемы для умножения 612
- Матричный умножитель 612
- Характеристики схемы 614
- Умножение с помощью дерева Уоллеса 614
- Характеристики схемы 615
- Упражнения 616
29.4. Тактированные схемы 617
- Устройство побитового сложения 617
- Характеристики схемы 618
- Каскадное сложение и побитовое сложение . . 618
- Одномерный умножитель 619
- Простая реализация 619
- Быстрая реализация 620
- Задачи 622
- Комментарии 623
Алгоритмы: построение и анализ — это. .. Что такое Алгоритмы: построение и анализ?
Алгори́тмы: построе́ние и ана́лиз (англ. Introduction to Algorithms, CLRS) — книга по алгоритмам и структурам данных, написанная Томасом Корменом, Чарльзом Лейзерстоном, Рональдом Ривестом и Клиффордом Штайном. Книга используется во многих учебных заведениях в качестве пособия и справочника, на книгу имеется более 4000 ссылок на CiteSeerX[1].
Издания
Первое издание книги вышло в 1990 году и было выпущено издательствами McGraw-Hill и MIT Press. На русском языке книгу издало издательство МЦНМО. Изначально Клиффорд Штайн не являлся соавтором книги, он присоединился к авторам в процессе работы над вторым изданием.
Второе издание книги было выпущено в 2001 году и издано на русском языке издательством «Вильямс» в 2005 году. Оно включало в себя новые главы о вероятностном анализе, рандомизированных алгоритмах и линейном программировании.
Третье издание было выпущено в 2009 году и планируется к выпуску на русском языке издательством «Вильямс» в 2013 году[2]. В него были добавлены главы о деревьях ван Эмде Боаса и многопоточных алгоритмах, были убраны главы о сортирующих сетях и биномиальных кучах, а также изменён синтаксис псевдокода для соответствия распространённым языкам программирования[3].
Обложка
На обложке всех изданий изображена скульптура-мобиль Big Red Александра Колдера, экспонируемая в Музее американского искусства Уитни в Нью-Йорке. В то же время, основной цвет обложки меняется с каждым изданием, так обложка первого издания была белой, второго зелёной, а третьего синей.
Библиографические данные
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. Introduction to Algorithms. — 1st. — MIT Press and McGraw-Hill, 1990. — ISBN 0-262-03141-8
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford Introduction to Algorithms. — 2nd. — MIT Press and McGraw-Hill, 2001. — ISBN 0-262-53196-8
- Cormen, Thomas H.; Leiserson, Charles E. ; Rivest, Ronald L.; Stein, Clifford Introduction to Algorithms. — 3rd. — MIT Press, 2009. — ISBN 0-262-03384-4
- Кормен, Т., Лейзерсон, Ч., Ривест, Р. Алгоритмы: построение и анализ = Introduction to Algorithms. — 1-е. — М.: МЦНМО, 2000. — 960 с. — ISBN 5-900916-37-5
- Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Алгоритмы: построение и анализ = Introduction to Algorithms. — 2-е. — М.: Вильямс, 2005. — 1296 с. — ISBN 5-8459-0857-4
Ссылки
Примечания
- ↑ CiteSeerX — Citation Query Introduction to Algorithms. Архивировано из первоисточника 30 июля 2012. Проверено 1 мая 2011 года.
- ↑ Будет издана уникальная книга Кормена «Алгоритмы: построение и анализ», 3-е издание, 2012. Архивировано из первоисточника 30 июля 2012. Проверено 1 мая 2011 года.
- ↑ Introduction to Algorithms Third Edition Preface. Архивировано из первоисточника 30 июля 2012. Проверено 1 мая 2011 года.
Книга Алгоритмы: построение и анализ удачно объединяет в себе полноту охвата и строгость изложения материала. Много книг, посвященных алгоритмам, отличается строгостью изложения материала, но страдает определенной неполнотой; другие книги охватывают огромный объем материала, но недостаточно строго излагают его. В книге Алгоритмы: построение и анализ описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения. Алгоритмы в книге Алгоритмы: построение и анализ описаны простым человеческим языком и с применением псевдокода, который понятен любому, кто хоть в небольшой степени знаком с программированием, а пояснения принципов их работы даны без излишней математической строгости и требуют лишь элементарных знаний. Первое издание книги Алгоритмы: построение и анализ давно стало стандартным справочным руководством для профессионалов и учебным пособием для университетов. Второе издание было дополнено новыми главами, раскрывающими такие темы, как вероятностный анализ и рандомизированные алгоритмы, линейное программирование. Третье издание также существенно дополнено и пересмотрено. В него вошли две совершенно новые главы, посвященные деревьям ван Эмде Боаса и многопоточным алгоритмам, а глава, посвященная рекуррентности, существенно расширена. Изменена подача такого материала, как динамическое программирование и жадные алгоритмы, и введено новое понятие потока, основанного на ребрах, в материале о транспортных сетях. В третье издание книги Алгоритмы: построение и анализ также было добавлено множество новых упражнений и задач. Фундаментальный труд Алгоритмы: построение и анализ известных специалистов в области информатики достоин занять место на полке любого человека, чья деятельностьтак или иначе связана с вычислительной техникой и алгоритмами:для профессионала эта книга может служить настольным справочником, для преподавателя — пособием для подготовки к лекциям и источником интересных нетривиальных задач, для студентов и аспирантов — отличным учебником. Каждый может найти в ней именно тот материал, который касается интересующей его темы и представлен именно с тем уровнем сложности и строгости, который требуется читателю. Описание алгоритмов на естественном языке дополняется псевдокодом, который позволяет любому имеющему хотя бы начальные знания и опыт программирования, реализовать алгоритм на используемом им языке программирования. Строгий математический анализ и обилие теорем сопровождаются большим количеством иллюстраций, элементарными рассуждениями и простыми приближенными оценками. Широта охвата материала и степень строгости его изложения дают основания считать эту книгу одной из лучших книг, посвященных разработке и анализу алгоритмов. Третье издание этого классического труда в большой степени доработано. В нем появились новые главы, в том числе посвященные такой важной в последнее время теме, какмногопоточные алгоритмы, а старые подверглись переработке, местами весьма существенной, когда уже имевшийся во втором издании материал излагается с иных позиций, чем ранее. Данная книга будет не лишней как на столе студента и аспиранта, так и на рабочей полке практикующего программиста. Об авторах Томас Кормен — профессор информатики вколледже Дартмута и бывший директор Института литературы и риторики Дартмутского колледжа. Чарльз Лейзерсон — профессор информатики и электротехники в Массачуссетском технологическом институте, где также работает и профессор Рональд Ривест. Клиффорд Штайн — профессор организации производства и исследования операций в Колумбийском университете. Отзывы о книге: «В свете взрывного роста количества данных и распространения вычислительных приложений эффективные алгоритмы востребованы в еще большей степени, чем ранее. Эта прекрасно написанная, тщательно продуманная и организованная книга является отличным введением в разработку и анализ алгоритмов. Первая ее половина представляет собой эффективный учебник теории алгоритмов, а вторая в большей степени предназначена для научных работников и любознательных студентов, которые хотели бы получитьдополнительные знания об этой интересной науке. » Шан-Хуа Тенг, Университет Южной Каролины» Это настоящая библия в указанной области, исчерпывающий учебник, охватывающий весь спектр современных алгоритмов: от быстрых алгоритмов и структур данных до алгоритмов с полиномиальным временем работы для решения очень сложных задач, от классических алгоритмов теории графов до специализированных алгоритмов поиска подстрок, вычислительной геометрии и теории чисел. Нельзя не упомянуть появившиеся в третьем издании деревья ван Эмде Боаса и многопоточные алгоритмы, важность которых постоянно увеличивается.» Дэниел Шпильман, факультет информатики Йельского университета» Как преподаватель и исследователь в области алгоритмов с более чем двадцатилетним стажем, могу с уверенностью утверждать, что книга Кормена — лучший из встречавшихся мне учебников. Это умный, энциклопедичный и современный подход к изучению алгоритмов; наш факультет продолжит использовать эту книгу как в качестве учебника длястудентов и аспирантов, так и в качестве рекомендуемого справочного пособия. » Габриэль Робинс, факультет информатики Университета Вирджинии. 3-е издание. Издательство: «Вильямс» (2016) ISBN: 978-5-8459-2016-4 |
построение и анализ — Википедия
Материал из Википедии — свободной энциклопедии
Алгори́тмы: построе́ние и ана́лиз (англ. Introduction to Algorithms, CLRS) — книга по алгоритмам и структурам данных, написанная Томасом Корменом, Чарльзом Лейзерсоном, Рональдом Ривестом и Клиффордом Штайном. Книга используется во многих учебных заведениях в качестве пособия и справочника, на книгу имеется более 4000 ссылок на CiteSeerX[1].
Издания
Первое издание книги вышло в 1990 году и было выпущено издательствами McGraw-Hill и MIT Press. На русском языке книгу издало издательство МЦНМО. Изначально Клиффорд Штайн не являлся соавтором книги, он присоединился к авторам в процессе работы над вторым изданием.
Второе издание книги было выпущено в 2001 году и издано на русском языке издательством «Вильямс» в 2005 году. Оно включало в себя новые главы о вероятностном анализе, рандомизированных алгоритмах и линейном программировании.
Третье издание было выпущено в 2009 году, его перевод на русский язык в 2013 году в издательстве «Вильямс»[2]. В него были добавлены главы о деревьях ван Эмде Боаса и многопоточных алгоритмах, были убраны главы о сортирующих сетях и биномиальных кучах, а также изменён синтаксис псевдокода для соответствия распространённым языкам программирования[3].
Обложка
На обложке всех изданий изображена скульптура-мобиль Big Red Александра Колдера, экспонируемая в Музее американского искусства Уитни в Нью-Йорке. В то же время, основной цвет обложки меняется с каждым изданием, так обложка первого издания была белой, второго зелёной, а третьего синей.
Библиографические данные
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L. Introduction to Algorithms. — 1st. — MIT Press and McGraw-Hill, 1990. — ISBN 0-262-03141-8.
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford. Introduction to Algorithms. — 2nd. — MIT Press and McGraw-Hill, 2001. — ISBN 0-262-53196-8.
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford. Introduction to Algorithms. — 3rd. — MIT Press, 2009. — ISBN 0-262-03384-4.
- Кормен, Т., Лейзерсон, Ч., Ривест, Р. Алгоритмы: построение и анализ = Introduction to Algorithms. — 1-е. — М.: МЦНМО, 2000. — 960 с. — ISBN 5-900916-37-5.
- Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Алгоритмы: построение и анализ = Introduction to Algorithms. — 2-е. — М.: Вильямс, 2005. — 1296 с. — ISBN 5-8459-0857-4.
- Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн. Алгоритмы: построение и анализ, 3-е издание = Introduction to Algorithms, Third Edition. — М.: «Вильямс», 2013. — 1328 с. — ISBN 978-5-8459-1794-2.
См. также
Примечания
Ссылки
Введение в алгоритмы — Introduction to Algorithms
Введение в алгоритмы — это книга по компьютерному программированию Томаса Х. Кормена , Чарльза Э. Лейзерсона , Рональда Л. Ривеста и Клиффорда Стейна . Книга широко используется в качестве учебника для курсов по алгоритмам во многих университетах и часто цитируется в качестве справочника по алгоритмам в опубликованных статьях , на CiteSeerX задокументировано более 10 000 ссылок. За первые 20 лет существования книги было продано полмиллиона экземпляров. Его известность привела к повсеместному использованию аббревиатуры « CLRS » (Cormen, Leiserson, Rivest, Stein) или, в первом издании, «CLR» (Cormen, Leiserson, Rivest).
В предисловии авторы пишут о том, что книга была написана так, чтобы быть всеобъемлющей и полезной как в преподавательской, так и в профессиональной среде. Каждая глава посвящена алгоритму и обсуждает его методы проектирования и области применения. Вместо использования определенного языка программирования алгоритмы написаны в псевдокоде . Описания сосредоточены на аспектах самого алгоритма, его математических свойствах и подчеркивают эффективность.
Редакции
Первое издание учебника не включало Штейна в качестве автора, и поэтому книга стала известна под инициализмом CLR. В него вошли две главы («Арифметические схемы» и «Алгоритмы для параллельных компьютеров»), которые были исключены во втором издании. После добавления четвертого автора во второе издание многие стали называть книгу «CLRS». Это первое издание книги было также известно как «Большая белая книга (алгоритмов)». Во втором издании преобладающий цвет обложки изменился на зеленый, в результате чего прозвище было сокращено до просто «Большая книга (алгоритмов)». Третье издание было опубликовано в августе 2009 года. Планы по выпуску следующего издания начались в 2014 году, но четвертое издание не будет опубликовано ранее 2021 года.
Дизайн обложки
Мобильный изображен на обложке, Big Red (1959) от Александра Колдера , можно найти в Уитни Музей американского искусства в Нью — Йорке .
Оглавление
- I Фонды
- 1 Роль алгоритмов в вычислениях
- 2 Начало работы
- 3 Рост функций
- 4 Разделяй и властвуй
- 5 Вероятностный анализ и рандомизированные алгоритмы
- II Статистика сортировки и заказа
- 6 Heapsort
- 7 Быстрая сортировка
- 8 Сортировка по линейному времени
- 9 Медианы и статистика заказов
- III Структуры данных
- 10 элементарных структур данных
- 11 хеш-таблиц
- 12 деревьев двоичного поиска
- 13 красно-черных деревьев
- 14 Дополнение структур данных
- IV Расширенные методы проектирования и анализа
- 15 Динамическое программирование
- 16 жадных алгоритмов
- 17 Амортизированный анализ
- V Расширенные структуры данных
- 18 B-деревьев
- 19 Куча Фибоначчи
- 20 деревьев Ван Эмде Боаса
- 21 Структура данных для непересекающихся множеств
- VI Графовые алгоритмы
- 22 алгоритма элементарных графов
- 23 минимальных остовных дерева
- 24 кратчайших пути от одного источника
- 25 кратчайших путей для всех пар
- 26 Максимальный расход
- VII Избранные темы
- 27 многопоточных алгоритмов
- 28 матричных операций
- 29 Линейное программирование
- 30 полиномов и БПФ
- 31 Теоретико-числовые алгоритмы
- 32 Соответствие строк
- 33 Вычислительная геометрия
- 34 НП-Полнота
- 35 алгоритмов аппроксимации
- VIII Приложение: Математические основы
- Итоги
- B наборы и т. Д.
- C Подсчет и вероятность
- D Матрицы
История публикации
- Кормен, Томас Х .; Лейзерсон, Чарльз Э .; Ривест, Рональд Л. (1990). Введение в алгоритмы (1-е изд.). MIT Press и McGraw-Hill. ISBN 0-262-03141-8.
- Кормен, Томас Х .; Лейзерсон, Чарльз Э .; Ривест, Рональд Л .; Стейн, Клиффорд (2001) [1990]. Введение в алгоритмы (2-е изд.). MIT Press и McGraw-Hill. ISBN 0-262-03293-7. 12 тиражей до 2009 г., исправленные ошибки:
- Кормен, Томас Х .; Лейзерсон, Чарльз Э .; Ривест, Рональд Л .; Стейн, Клиффорд (2009) [1990]. Введение в алгоритмы (3-е изд.). MIT Press и McGraw-Hill. ISBN 0-262-03384-4. 1320 стр., 5 тиражей до 2016 г.), опечатки:
Смотрите также
Ссылки
внешние ссылки
- Официальные сайты
- Лекция MIT «MIT 6.046J / 18.410J Введение в алгоритмы — осень 2005 г.». Частично проведен соавтором Чарльзом Лейзерсоном. Выпущено как часть MIT OpenCourseWare .
- В OCW.MIT.Edu . Видеозаписи и стенограммы лекций.
- На VideoLectures.Net . Видеозаписи лекций. Включает слайды, автоматически синхронизируемые с видеоконтентом.
- Решения для упражнений
<img src=»https://en.wikipedia.org//en.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1×1″ alt=»» title=»»>
Algorithm, Inc. | Algorithm, Incorporated
Разработка алгоритмов программного обеспечения
A Журнал Fortune «ТОП-25 очень крутых технологических компаний!»
Algorithm, Inc. была ведущей сторонней фирмой по разработке продуктов для технологий искусственного интеллекта и программного обеспечения на основе алгоритмов для бизнеса,
промышленность, коммерция, авиация, медицина, развлечения и обучение в течение трех десятилетий, создание продуктов для компаний, только начинающих
для тех, кто входит в список Fortune 500.
Algorithm, Inc. выполняла работы для таких лидеров отрасли, как Thomson Entertainment (подразделение Thomson Training & Simulation) и
American Orthodontics и через родственную компанию производили API для
Корпорация Intel.
Algorithm, Inc. разрабатывает компьютерные и мобильные программные приложения, а также электронное оборудование для интерактивного моделирования в реальном времени и трехмерного моделирования.
компьютерная графика, а также множество специализированных технологий анализа данных для бизнеса и промышленности.Он создает программное обеспечение для
аналитика данных и машинное обучение, которые поддерживают решения для планирования ресурсов предприятия (ERP), бизнес-аналитику (BI) и
инвентаризация и прогнозирование. Поскольку в конце 1990-х годов стали важны онлайн-продажи, одно из таких усилий было направлено на создание мебели.
отрасли, где были созданы как прогнозы спроса на запасы, так и каталоги для конкретных клиентов. Одна специальность — это
создание API (интерфейсов прикладного программиста) и SDK (комплектов разработки программного обеспечения), позволяющих другим инжиниринговым фирмам и
предприятиям предоставляется свобода разрабатывать собственные проприетарные приложения, что избавляет их от крутой кривой обучения современным алгоритмам
инженерное дело.
Основанная в 1982 году председателем и главным исполнительным директором Кристофером Д. Уоткинсом и учрежденная им в Атланте, штат Джорджия, в 1991 году, компания Algorithm, Inc.
системы управления с прогнозирующими характеристиками (теперь обычно называемые «глубокое обучение» ), ранние плазменные глобусы, аналоговые и цифровые
музыкальные синтезаторы, оборудование для обработки сигналов со спецэффектами, технология сжатия и системы обработки сигналов, а также некоторые
первых систем иммерсивного моделирования. Compu-Ceph ® использует прогнозную аналитику системы управления, чтобы
прогнозировать результаты ортодонтических и хирургических вмешательств.
Владелец алгоритма Кристофер недавно получил
Патент США № 9,245,148.
(# 8,700,890, DLA Piper LLP (США))
для киберзащиты нового поколения ( Безопасное хранение и ускоренная передача информации по сетям связи ).
Увидеть
Биография Кристофера и
Книги, написанные Кристофером для более подробной информации.
Две книги с образцами доступны на
Экскурсии по виртуальной реальности и
Современная обработка изображений .
Название Алгоритм относится к пошаговой процедуре решения проблемы или достижения какой-либо цели, будь то технической или
бизнес. Уникальные подходы алгоритма к решению проблем, основанные на передовой математике и инженерном опыте, имеют
способствовал разработке высокопроизводительных ПК рабочих станций для графики, управления процессами и моделирования.
As The Algorithm Company ™ и The Software Algorithm Company ™ , Algorithm, Inc.объединил свои технические
ресурсы с отраслевыми партнерами, чтобы стать независимым исследовательским центром, исследовательской группой и скунсом, работающим для
многих своих клиентов по всему миру, избавляя их от высоких затрат на содержание научно-исследовательского центра, работающего полный рабочий день.
Изучите алгоритмы онлайн | Brainscape
Знание Геном TM
Сертифицировано Brainscape
Просмотрите более 1 миллиона курсов, созданных лучшими студентами, профессорами, издателями и экспертами, которые охватывают весь мир «усваиваемых» знаний.
Вступительные экзамены
Экзамены уровня A
Экзамены AP
Экзамены GCSE
Вступительные экзамены в магистратуру
Экзамены IGCSE
Международный Бакалавриат
5 национальных экзаменов
Вступительные экзамены в университет
Профессиональные сертификаты
Бар экзамен
Водитель Эд
Финансовые экзамены
Сертификаты управления
Медицинские и сестринские сертификаты
Военные экзамены
MPRE
Другие сертификаты
Сертификаты технологий
TOEFL
Иностранные языки
арабский
китайский язык
французкий язык
Немецкий
иврит
Итальянский
Японский
корейский язык
Лингвистика
Другие иностранные языки
португальский
русский
испанский
TOEFL
Наука
Анатомия
Астрономия
Биохимия
Биология
Клеточная биология
Химия
науки о Земле
Наука об окружающей среде
Генетика
Геология
Наука о жизни
Морская биология
Метеорология
Микробиология
Молекулярная биология
Естественные науки
Океанография
Органическая химия
Периодическая таблица
Физическая наука
Физика
Физиология
Растениеводство
Класс науки
Зоология
Английский
Американская литература
Британская литература
Классические романы
Писательское творчество
английский
Английская грамматика
Фантастика
Высший английский
Литература
Средневековая литература
Акустика
Поэзия
Пословицы и идиомы
Шекспир
Орфография
Vocab Builder
Гуманитарные и социальные науки
Антропология
Гражданство
Гражданское
Классика
Связь
Консультации
Уголовное правосудие
География
История
Философия
Политическая наука
Психология
Религия и Библия
Социальные исследования
Социальная работа
Социология
Математика
Алгебра
Алгебра II
Арифметика
Исчисление
Геометрия
Линейная алгебра
Математика
Таблицы умножения
Precalculus
Вероятность
Статистические методы
Статистика
Тригонометрия
Медицина и уход
Анатомия
Системы тела
Стоматология
Медицинские курсы и предметные области
Медицинские осмотры
Медицинские специальности
Медицинская терминология
Разные темы здравоохранения
Курсы медсестер и предметные области
Медсестринские специальности
Другие области здравоохранения
Фармакология
Физиология
Радиология и диагностическая визуализация
Ветеринарная
Профессии
ASVAB
Автомобильная промышленность
Авиация
Парикмахерская
Катание на лодках
Косметология
Бриллианты
Электрические
Электрик
Пожаротушение
Садоводство
Домашняя экономика
Садоводство
HVAC
Дизайн интерьера
Ландшафтная архитектура
Массажная терапия
Металлургия
Военные
Борьба с вредителями
Сантехника
Полицейская
Сточные Воды
|
argon2 / chukwav2 | 1 МБ | 6.4.0+ | Argon2id (Chukwa v2). | Только ЦП |
cn / ccx | 2 Мб Только графический процессор, не поддерживается xmrig-proxy | |||
rx / keva | 1 МБ | 5.9.0+ | RandomKEVA (вариант RandomX для Keva). | |
astrobwt | 20 МБ | 5.8.0+ | AstroBWT (Деро). | |
cn-pico / tlo | 256 КБ | 5.5.0+ | CryptoNight-Pico (Talleo). | |
rx / sfx | 2 МБ | 5.4.0+ | RandomSFX (вариант RandomX для Safex). | |
rx / arq | 256 КБ | 4.3.0+ | RandomARQ (вариант RandomX для ArQmA). | |
rx / 0 | 2 МБ | 3.2.0+ | RandomX (Monero). | |
argon2 / chukwa | 512 КБ | 3.1.0+ | Argon2id (Chukwa). | Только ЦП |
argon2 / wrkz | 256 КБ | 3.1.0+ | Argon2id (WRKZ) | Только ЦП |
rx / wow | 1 МБ | |||
cn / fast | 2 MB | 3.0.0+ | CryptoNight, вариант 1 с половинными итерациями. | |
cn / rwz | 2 MB | 2.14.0+ | CryptoNight, вариант 2 с 3/4 итерациями и обратным перемешиванием. | |
cn / zls | 2 MB | 2.14.0+ | CryptoNight, вариант 2 с 3/4 итерациями. | |
cn / double | 2 MB | 2.14.0+ | CryptoNight, вариант 2 с двойными итерациями. | |
cn / r | 2 MB | 2.13.0+ | CryptoNightR (вариант 4 Monero). | |
cn-pico | 256 КБ | 2.10.0+ | CryptoNight-Pico. | |
cn / половина | 2 MB | 2.9.0+ | CryptoNight вариант 2 с половинными итерациями. | |
cn / 2 | 2 MB | 2.8.0+ | CryptoNight, вариант 2. | |
cn / xao | 2 MB | 2.6.4+ | CryptoNight (измененный) . | |
cn / rto | 2 MB | 2.6.4+ | CryptoNight, вариант 1 (измененный). | |
cn-Heavy / tube | 4 MB | 2.6.4+ | CryptoNight-Heavy (модифицированный). | |
cn-heavy / xhv | 4 MB | 2.6.3+ | CryptoNight-Heavy (изменено). | |
cn-heavy / 0 | 4 MB | 2.6.0+ | CryptoNight-Heavy. | |
cn / 1 | 2 MB | 2.5.0+ | CryptoNight, вариант 1. | |
cn-lite / 1 | 1 МБ | 2.5.0+ | CryptoNight-Lite вариант 1. | |
cn-lite / 0 | 1 МБ | 0.8.0+ | CryptoNight-Lite вариант 0. | |
cn / 0 | 2 MB | 0.5.0+ | CryptoNight (оригинал). |
Сравнение алгоритмов сортировки — Cprogramming.com
Алгоритмы сортировки — важная часть управления данными.В
Cprogramming.com, мы предлагаем учебные пособия для понимания наиболее важных и
общий
методы сортировки. У каждого алгоритма есть свои сильные стороны и
слабые места, и во многих случаях лучше всего просто использовать встроенный
функция сортировки qsort. В случаях, когда это не вариант или вам просто нужно
алгоритм быстрой и грязной сортировки, есть множество вариантов.
Большинство алгоритмов сортировки работают путем сравнения сортируемых данных. В некоторых
случаях может быть желательно отсортировать большой кусок данных (например,
struct, содержащая имя и адрес) на основе только части этих данных.2) или
О (п * журнал (п)). Несколько особых случаев алгоритмов (один пример упомянут в Программе
Pearls) может сортировать определенные наборы данных быстрее, чем O (n * log (n)). Эти
алгоритмы не основаны на сравнении сортируемых элементов и полагаются на
ухищрения. Было показано, что ни один алгоритм сравнения ключей не может работать лучше.
чем O (n * log (n)).
Многие алгоритмы с одинаковой эффективностью не имеют одинаковой скорости
тот же вход. Во-первых, об алгоритмах следует судить на основе их среднего случая,
в лучшем случае и в худшем случае эффективности.Некоторые алгоритмы, например быстрая сортировка,
работают исключительно хорошо для одних входов, но ужасно для других. Другие
алгоритмы, такие как сортировка слиянием, не зависят от порядка входных данных.
Даже модифицированная версия пузырьковой сортировки может закончиться за O (n) в течение большей
благоприятные входы.
Второй фактор — это «постоянный член». Поскольку нотация большого O абстрагирует многие
деталей процесса, это очень полезно для просмотра больших
картина. Но одна вещь, которая выпадает, — это константа перед
выражение: например, O (c * n) — это просто O (n).В реальном мире
константа c будет варьироваться в зависимости от алгоритма. Хорошо реализованный
быстрая сортировка должна иметь гораздо меньший постоянный множитель, чем сортировка кучи.
Вторым критерием оценки алгоритмов является их потребность в пространстве — делать
для них требуется рабочее пространство или массив может быть отсортирован по месту (без
дополнительная память помимо нескольких переменных)? Некоторые алгоритмы никогда не требуют
дополнительное пространство, тогда как некоторые из них легче всего понять, если реализовать с
дополнительное пространство (например, сортировка кучи может выполняться на месте, но концептуально
гораздо проще придумать отдельную кучу).Требования к пространству могут даже
зависят от используемой структуры данных (сортировка слиянием для массивов по сравнению с сортировкой слиянием на
связанные списки, например).
Третий критерий — стабильность — сохраняет ли сортировка порядок ключей
с равными ценностями? Большинство простых сортировок делают именно это, но некоторые, например
куча сортировать, не надо.
В следующей таблице сравниваются алгоритмы сортировки по различным критериям.
изложено выше; алгоритмы с более высокими постоянными членами появляются первыми, хотя
это явно зависит от реализации концепции и ее следует принимать только
в качестве приблизительного ориентира при выборе между сортами с одинаковой эффективностью.2)
Сорт
добиться постоянного пространства
Сорт
для сортировки требуется постоянное пространство
сортировка) может помочь избежать наихудших сценариев, таких как идеально
отсортированный массив.
алгоритмов ACLS 2018 — доступны карты для печати
Алгоритм остановки сердца у взрослых
Алгоритм остановки сердца является наиболее важным алгоритмом ACLS. Если у вас есть пациент без пульса, вы должны распознать фибрилляцию желудочков (ФЖ) или желудочковую тахикардию без пульса (ПВТ) как ритмы, требующие разряда.
Посмотреть алгоритм
Циркулярный алгоритм остановки сердца
Этот алгоритм представляет собой сводку рекомендуемых действий при остановке сердца у пациента.Начиная с СЛР, вы будете прорабатывать последовательность, полагаясь на проверку ритма, разряды при VF / pVT и доставку лекарств.
Посмотреть алгоритм
Алгоритм подозрения на инсульт
Алгоритм подозрения на инсульт ACLS подчеркивает критические действия при внебольничном и стационарном уходе и лечении. Инсульт — это нарушение кровоснабжения части мозга, которое вызывает острые неврологические нарушения.
Посмотреть алгоритм
Алгоритм лечения после остановки сердца
Здесь вы познакомитесь с комплексным протоколом лечения после остановки сердца.Этот случай применим к пациенту, у которого была остановка сердца и который был реанимирован с помощью BLS, первичной оценки ACLS и вторичной оценки ACLS.
Посмотреть алгоритм
Алгоритм острых коронарных синдромов
Этапы алгоритма ACS описывают рекомендации по оценке и лечению пациентов, у которых наблюдаются симптомы, указывающие на ишемию или инфаркт.
Посмотреть алгоритм
Брадикардия с импульсным алгоритмом
Алгоритм брадикардии предоставляет информацию, необходимую для оценки и ведения пациента с симптоматической брадикардией или частотой сердечных сокращений менее 50 ударов в минуту.Для некоторых людей (например, бегунов) более медленное сердцебиение может быть нормальным и протекать бессимптомно.