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

Какой хороший способ изучить алгоритмы?

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

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

У меня есть несколько текстов алгоритмов, в частности книга CLRS и книга Skiena, а также ссылки на различные онлайн-источники.

Должен ли я читать обложку обеих книг? Прочтите? Просто ознакомьтесь с некоторыми онлайн-лекциями? Как вы это сделаете?

Изменить: мне не удалось найти такой вопрос, отсюда сообщение. Извините за обман. Хорошая информация в этом другом вопросе тоже.

4b9b3361

Ответ 1

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

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

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

Я изучил алгоритмы с CLRS и нашел, что это здорово. Также ищите в Интернете некоторые интерактивные демонстрации алгоритмов, их много.

Удачи!

Ответ 2

Я также рекомендовал бы перейти на Project Euler. Особенно в форуме есть много дискуссий по алгоритму, и проблемы поощряют этот шаблон:

  • решить его
  • размышлять над ним
  • решить это правильно.

Ответ 4

В настоящее время я запускаю Skiena для покрытия... это очень хорошо до сих пор...

Ответ 5

Topcoder.com соревнования превосходны для этого.

Ответ 6

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