Задать вопрос
evgeniy8705
@evgeniy8705
Повелитель вселенной

Как изучать алгоритмы?

Решил получить знания об алгоритмах. После некоторого времени остановился на книге Роберт Седжвик, Кевин Уэйн - Algorithms / Алгоритмы на Java.

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

В общем вообще не понимаю как самостоятельно разобраться в этих алгоритмах.
Может книгу не ту выбрал? или нет какой то базы для алгоритмов? На каком этапе обучения вообще стоит браться за изучения алгоритмов и структур данных? Ладно в самом алгоритме еще можно разобраться, реализация некоторых простых сортировок мне понятна, да и двоичных поиск тоже, но вот как научиться решать алгоритмические задачи?
Самое начало книги, а у меня уже ступор, а дальше сложнее...
  • Вопрос задан
  • 1131 просмотр
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
@res2001
Developer, ex-admin
Автор вопроса меня заинтриговал. И хотя я не занимаюсь Java, качнул книжку, пробежал первую главу и задания.
Ну да есть пара упражнений с логарифмами. Если открыть википедию на логарифме, то там увидим, что логарифмы вычисляются с помощью простых рядов, где используются исключительно арифметические операции (надеюсь ваши знания математики на эти действия распространяются (+-/*)?). Решить задание основываясь на этой информации довольно просто.
Все остальные "умные слова" встречаются в разделе "творческие задачи" и "эксперименты" - там видимо несколько более сложные задания. Хотя я в этом не уверен.
Слово рекурсия, в контексте книги, имеет прямое отношение к программированию и мало к математике. Означает оно - вызов функцией саму себя. Все задания на рекурсию как раз об этом. В главе про это рассказывается. Разве это так уж сложно? Видимо вы не поняли объяснения в прочитанной главе.
Можно и другие задания обсуждать. Они все довольно легкие, на какие-то нужно потратить время, какие-то решаются с ходу. Задания где встречаются "умные слова" из математики обычно непосредственно этой математики не касаются. Разве что творческое задание написать библиотеку матричных вычислений, но и там предлагается написать всего 5 простых матричных операций. Откройте википедию на описании матриц и увидите, что эти операции реализуются довольно просто.
Прежде чем писать жалобные посты на тостер, потратьте хотя бы 10 минут на обдумывание задания и, может быть, небольшой гуглеж. Так же, возможно, нужно перечитать главу.
Ну и в конце концов, если после обдумывания, перечитывания и гуглежа, вы видите, что без углубления в математику не обойтись - можно просто пропустить задание :-)
Вы хотите научиться чему то новому без усилий? Так не бывает!
А может, это вообще не ваше?
Ответ написан
Комментировать
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Рекомендую купить 4-х томник (уже) "Исскуство программирования" Дональда Кнута, как раз про алгоритмы. Рекомендую на полном серьезе, как прочитанное лично!
Также, этого же автора "Конкретная математика", но ее еще не прочитал, лежит, ждет.
Увы, явой там и не пахнет. Но потом, когда разберетесь, что ява, что не ява, все едино :-)
Ответ написан
@tomatho
Либо у вас совсем плохая фантазия, либо плохо поняли главу, либо школьную математику очень плохо знаете, либо автор вам соврал, что математика не требуется.
Скорее всего последнее.

Это называется профдеформация, и тут она заключается в том, что автору кажется математика простой и очевидной, потому он пишет, что особо математики не требуется.
Ответ написан
@immaculate
Программист-путешественник
На Khan Academy есть простое введение в алгоритмы. Минимум математики, тестовые задания сразу же проверяются. Очень простой курс. Ну а сложные алгоритмы без математики не осилить, тут серебряной пули нет.
Ответ написан
Комментировать
@Frel
На распутье
на stepik есть про алгоритмы курс посмотрите
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы