Ответ 1
Как насчет список алгоритмов vikipedia?
Я ищу обзор алгоритмов, вам нужно время от времени. Если есть проблема, вы либо заново изобретаете колесо, либо тратите много времени на поиск алгоритма для общей известной проблемы, которая была решена сто раз раньше.
Лучшим будет сайт с отсортированными алгоритмами, например:
Я думаю, вы чувствуете, что я имею в виду.
Какие страницы вы знаете?
Как насчет список алгоритмов vikipedia?
Как насчет Словарь алгоритмов и структур данных из NIST?
У вас также есть хороший Викиучебник на Algorithms, на который ссылается многие статьи алгоритмов.
Я настоятельно рекомендовал бы книгу "Руководство по разработке алгоритмов" Стивена Скиена. Он имеет структуру каталогов, о которой вы упоминаете.
Существует серия книг "Искусство компьютерного программирования", которая достаточно всеобъемлющая, если вы хотите что-то в бумаге.
Эта книга превосходна:
Руководство по разработке алгоритмов
Это связано с другими ответами, но является хорошим ресурсом:
В Принстоне есть несколько замечательных публичных лекций Р. Седжуика (парень, который сделал левые наклонные красные черные деревья и книги Алгоритмы в C)
http://www.cs.princeton.edu/courses/archive/spring11/cos226/lectures.php
CLRS.
То есть, учебник "Введение в алгоритмы" Кормена, Лейзера, Ривеста и Штаина.
Это даст вам хороший обзор наиболее значимых алгоритмов для большинства общих целей, а также надежный анализ.
Простой сайт/список был бы плохим, если бы он вдохновил слишком поспешный выбор "вырезать и вставить" без твердого понимания.
Также как Руководство по разработке алгоритмов, здесь онлайн Stony Brook Algorithm Repository, управляемый автором, который ссылается на реализации. Оба имеют отличную структуру каталогов.
В дополнение к откомандированию Руководство по разработке алгоритмов, у меня был очень положительный опыт в этой книге:
Запрашивая "Есть ли обзор наиболее распространенных алгоритмов?" Это точно так же, как просить, есть ли общий обзор математики или науки?
Алгоритмы - это методы решения проблем и прикладная математика, используемые во многих областях, которые требуют систематического подхода для решения сложных задач, таких как эти поля/приложения:
Компьютерная инженерия или электротехника:
Алгоритмы обработки изображений
обработка сигналов в общем algos
Уменьшение шума, аналоговый и цифровой
CS или IT:
Управление данными
безопасность (шифрование, обнаружение вторжений)
Машиноведение
Финансы, исследования операций, эконометрика:
Линейное программирование
Динамическое программирование
Статистика Алгос и стохастическое исчисление
Combinatrics
и т.д....
Просто чтобы назвать несколько и поцарапать поверхность
Однако большинство специализированных алгоритмов производятся из общих случаев, встречающихся в CS, поэтому, чтобы ответить на ваш вопрос, любая книга или учебник, который охватывает Введение в алгоритм, должен быть в порядке.
Вот как минимум из общих алгоритмов CS, которые я встречал в академических кругах и профессионально 1) Сортировка (пузырь, вставка, слияние, быстрый)
2) Поиск (dfs, bfs)
3) Структуры данных и Algos, которые пересекают структуры данных
4) Рекурсия против взаимодействия (сложность рекурсии должна быть изучена, мастер-теорема)
5) Деревья (двоичный, N-арный, Kd-дерево, B-дерево)
6) Графы (обход через dfs, bfs)
7) Хеширование
8) Общие математические алгоритмы (GCD, Экспоненциальность, различные умножения матриц)
9) Деревья выражений (Построение и обход)
10) Обзор общих альфа шифрования, таких как RSA, AES и т.д.
Если вы изучите то, что я упомянул выше, и знаю, что сложность времени (O-нотация) в значительной степени охватывает все, что вам нужно знать для алгоритмов CS.
Я рекомендую "Введение в алгоритмы" Cormen, etal. MIT Нажмите
Наиболее распространенные алгоритмы включены в Boost. Здесь вы можете найти наиболее распространенные алгоритмы сортировки, поиска или иного. Использование алгоритмов тесно связано с использованием конкретного языка программирования. В дополнение к вышеупомянутым книгам существует хороший URL такой Учебники по компьютерным наукам.
Мой выбор defacto - Stackoverflow.com:)
Просто найдите ключевое слово алгоритм "; вы получите массу проблем.