@Arliking

Насколько важно знать алгоритмов в яп Java и какие алгоритмы нужны?

Данная тема довольно спорная, но мне интересна яп Java и хочу узнать насколько это необходимо знать алгоритмы и если это необходимо какие премущества приносит алгоритмы.
  • Вопрос задан
  • 401 просмотр
Решения вопроса 3
vabka
@vabka
Токсичный шарпист
Хотябы базовые структуры данных и алгоритмы знать нужно для любого ЯП:
Структуры данных:
  • Array
  • ArrayList
  • HashMap
  • HashSet
  • Деревья (хотябы обычные)
  • Stack
  • Queue


Алгоритмы:
  • Линейный поиск
  • Бинарный поиск
  • Сортировка (Желательно парочку алгоритмов знать)


Без этого жить будет очень сложно.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Прежде всего, стоит убрать сакральность из слова "алгоритмы". Определение гласит:

Алгоритм - система последовательных операций (в соответствии с определёнными правилами) для решения какой-нибудь задачи.

То есть обычный "Hello World" - это уже алгоритм.

Если же говорить об алгоритмах, как общеизвестных шаблонных подходах к решению определённых задач, то потребность в них зависит не от языка, а от области деятельности программиста. Многим программистам в их работе можно обходится и без знания алгоритмов, так как всё необходимое уже есть в стандартной библиотеке. Но чтобы не уподобляться анекдотичной блондинке, знающей про свой автомобиль только то, что он красненький, чтобы эффективно использовать стандартную библиотеку, чтобы выйти за её рамки и расширить спектр своих возможностей, чтобы расти профессионально и много зарабатывать алгоритмы понимать нужно. Именно понимать, а не просто знать.

Простых примеров пользы от понимания алгоритмов на этом ресурсе предостаточно. Здесь часто кто-нибудь спрашивает, почему его программа выполняется очень долго или вовсе зависает. При этом более-менее опытному человеку с первого взгляда видна квадратичная сложность алгоритма и очевидно, как ускорить программу в тысячи раз.
Ответ написан
Комментировать
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день!
Рекомендую прочитать книгу Роберт Лафоре - Структуры данных и алгоритмы Java.
К вопросу о том, сколько алгоритмов нужно знать скажу, что достаточно знать базовые алгоритмы и пожалуй, владеть английским, чтобы при необходимости уметь разобраться в нужном.
Базовые:
- линейный поиск
- двоичный поиск
- пузырьковая сортировка
- быстрая сортировка

А так можно покопаться в других алгоритмах тоже (алгоритм Беллмана-Форда, алгоритм Дейкстры, алгоритм А*, кодирование Хаффмана, алгоритм ruin & recreate для решения VRP &TRP, ханойская башня и т.д.). Сам сейчас разбираюсь с некоторыми из них, так как приходится применять их в проекте.

Кстати, есть простое приложение для андроид, которое описывает суть разных алгоритмов при помощи инфографики.
https://play.google.com/store/apps/details?id=wiki...

А вот, тут репозиторий с алгоритмами на Java
https://github.com/TheAlgorithms/Java
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы