В задачах для начинающих программистов часто нужно реализовать какой-нибудь простой алгоритм или математическую операцию. Такие задачи не всегда являются полностью искусственными. В этой статье расскажем, какие популярные учебные задания пригодятся в настоящей работе.
Факториал
Факториал n — это произведение всех натуральных чисел от 1 до n включительно. Он используется в комбинаторике, теории вероятности, оценке сложности алгоритмов, и во множестве точных наук. Например с помощью нахождения факториала можно узнать сколько вариантов перестановок может быть в последовательности P: .
Числа Фибоначчи
Ряд Фибоначчи это последовательность чисел, которая начинается с 0, 1 или 1, 1 и каждое последующее число равно сумме двух предыдущих. Несмотря на кажущуюся абстрактность, данная последовательность встречается не только в задачах для начинающих программистов, но и в природе, она описывает, например, расположение листьев некоторых видов растений.
Последовательность применяется в криптографии, трейдинге и не только. В частности, в трейдинге используются линии Фибоначчи.
Сортировка пузырьком
Это простейшая сортировка, которая сейчас используется в основном в задачах для начинающих программистов. Её суть проста — повторяющиеся проходы по массиву, в результате которые сравниваются соседние элементы, и если порядок в паре не верный, меняются местами. Сложность данного алгоритма . Хотя сортировка пузырьком и лежит в основе более совершенных алгоритмов, вы не столкнётесь с ней в реальном коде.
Связный список
Это базовая структура данных, состоящая из узлов, каждый из которых содержит собственно данные, и одну, или две ссылки на предыдущий/следующий узел списка. Связный список может содержать произвольное количество элементов.
Он широко использовался во времена появления языка Си. В настоящее время, связный список имеет смысл применять когда: необходимо обеспечить одинаковое время вставки/удаления элемента, неизвестно количество элементов, не требуется произвольный доступ к элементам, требуется возможность вставки элементов в середину списка.
Стек и очередь
Стек и очередь — это два типа коллекций которые отличаются способом доступа к элементам. В стеке вам доступен только последний добавленный элемент. В очереди доступен первый добавленный элемент.