Обложка: Популярные задачи для начинающих программистов, с которыми можно столкнуться в работе

Популярные задачи для начинающих программистов, с которыми можно столкнуться в работе

1
29

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

Факториал

Факториал n — это произведение всех натуральных чисел от 1 до n включительно. Он используется в комбинаторике, теории вероятности, оценке сложности алгоритмов, и во множестве точных наук. Например с помощью нахождения факториала можно узнать сколько вариантов перестановок может быть в последовательности P: Число возможных перестановок.

Числа Фибоначчи

Ряд Фибоначчи это последовательность чисел, которая начинается с 0, 1 или 1, 1 и каждое последующее число равно сумме двух предыдущих. Несмотря на кажущуюся абстрактность, данная последовательность встречается не только в задачах для начинающих программистов, но и в природе, она описывает, например, расположение листьев некоторых видов растений.

Последовательность применяется в криптографии, трейдинге и не только. В частности, в трейдинге используются линии Фибоначчи.

Сортировка пузырьком

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

Связный список

Это базовая структура данных, состоящая из узлов, каждый из которых содержит собственно данные, и одну, или две ссылки на предыдущий/следующий узел списка. Связный список может содержать произвольное количество элементов.

Он широко использовался во времена появления языка Си. В настоящее время, связный список имеет смысл применять когда: необходимо обеспечить одинаковое время вставки/удаления элемента, неизвестно количество элементов, не требуется произвольный доступ к элементам, требуется возможность вставки элементов в середину списка.

Стек и очередь

Стек и очередь — это два типа коллекций которые отличаются способом доступа к элементам. В стеке вам доступен только последний добавленный элемент. В очереди доступен первый добавленный элемент.

Пример использования стеков — операция «Отмена» в любой программе. Очередь, как и стек, применяется тогда, когда нужен буфер для каких либо операций или объектов. Кроме того, эти типы коллекций применяются в асинхронном программировании.

Что думаете?