Java

Java, алгоритмы и структуры данных.

Зайдя на hh, написав про java, всегда в требованиях будет @Знание и умение использовать различные алгоритмы и структуры данных". Вопрос: зачем использовать разные алгоритмы. Если результат будет абсолютно таким же. Может из вас кто то уже работает в IT и подскажет.
Юра Титов
Юра Титов
94
Затем, что разные алгоритмы требуют разный объём памяти для своей работы и имеют разную зависимость времени своей работы от объёма данных. Если ты сортируешь 10 элементов, пузырьковая сортировка будет намного быстрее быстрой сортировки, а если 10 миллионов элементов - пузырьковая сортировка будет порядка 100000 раз медленнее быстрой.

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

P.S. Если ты не знаком с основами алгоритмики, то глядеть надо в учебник программирования (не путать с учебником языка программирования - это совершенно разные вещи), а не в hh.
Ефим Анпилогов
Ефим Анпилогов
99 692
Лучший ответ
Юра Титов Спасибо, можете порекомендовать учебники по этим самым алгоритмам.
Одна и та же задача реализованная по разному алгоритму выполняется с разной скоростью. Приведу небольшой пример. Допустим нам нужно реализовать алгоритм в котором мы должны добраться до работы. Первый алгоритм мы можем пойти на работу пешком. Второй мы можем пойти на работу на автобусе. Третий мы можем поехать на работу на личном автомобиле. Четвертый мы можем поехать на работу на мотоцикле. Я не буду описывать все действия в любом алгоритме есть начало и конец у всех этих алгоритмов одинаковое начало выход из дома и конец офис работы. Если нам нужно сэкономить денег то мы можем взять первый алгоритм. Если нам нужно добраться во время на работу то второй алгоритм. Если мы не хотим ждать автобуса то используем третий. Если же нам нужно добраться на работу без пробок то используем четвертый так как на мотоцикле можно проехать хоть через любой двор.