Подтвердить что ты не робот

Простые алгоритмы обучения?

Я хочу изучить алгоритмы, используя некоторые простые простые учебные пособия. Есть ли там там? Я слышал о рекурсии и вещах, и я хотел бы получить от этого хорошие результаты. Любая помощь будет оценена.

4b9b3361

Ответ 1

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

Ответ 3

MIT OCW имеет видео-лекции своего курса Алгоритма. Профессор является одним из авторов книги "Введение в алгоритмы", предложенной другим плакатом.

Он принимает базовые знания о дискретных математиках.

Ответ 5

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

Вы изучаете алгоритмы с помощью делая. Поэтому найдите ресурс, который предоставляет проблемы алгоритмов и рекомендации по их решению. Если вы хотите получить учебник, ознакомьтесь с Руководством по проектированию алгоритмов, в котором также есть онлайн-хранилище Алгоритм-репозиторий. Если вы предпочитаете онлайн-курс, Udacity предлагает курс алгоритмов на основе python, в то время как Coursera предлагает общий и Java-based.

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

algorithm design manuallearneroo screenshot

Ответ 6

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

Ответ 7

Я бы начал с Story Brook Algorithm Repository. На сайте есть некоторые действительно хорошие объяснения различных типов алгоритмов, и он ссылается на то, какие книги и другие ресурсы он использует, чтобы вы могли понять, что доступно.

Ответ 8

Я предлагаю начать с алгоритмов сортировки. Прочитайте связанную , пропустите материал O (n log n) и сосредоточьтесь на реализациях, например, сортировки вставки, сортировке слияния, и быстрая сортировка. Ознакомьтесь с двоичный поиск. Кроме того, узнайте о некоторых базовых структурах таких как векторы, связанные списки, стеки, их реализация и то, для чего они полезны. (Чаще всего алгоритм решения проблемы сочетается с подходящей структурой данных.) Как только вы уверены в разных алгоритмах и структурах данных, вы можете погрузиться в более полный трактат, например, книга Cormen и др.

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

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

Ответ 9

Для разных людей, которые прокомментировали, что книга xyz не проста, я бы отметил, что алгоритмика - не простая тема. Вам нужна, по крайней мере, математика университетского уровня для понимания понятий плюс способность рассуждать о вычислении на достаточно абстрактном уровне. Если вы когда-нибудь найдете книгу "Алгоритмы для чайников", не тратьте деньги!

Ответ 11

Прохождение решений в задачах topcoder - очень хороший способ подбора алгоритмов. Только теория чтения не поможет

Ответ 13

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

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

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

Ответ 14

США Computing Olympiad имеет хорошие алгоритмы сайт обучения, который до сих пор можно зарегистрировать и почти в таком классе, как формат. читайте немного, делайте упражнение, читайте больше, делайте упражнение и т.д.

Ответ 15

Один из моих любимых вариантов алгоритмов - Project Euler, они довольно разнообразны, и вы можете решить одну и ту же проблему много раз для оптимизации, и вы найдете множество сообществ (С++, С#, Python и т.д.), разместив свои тесты для каждой проблемы.

Это так весело, выродка веселья

Ответ 16

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