При прохождении курса "Алгоритмы и структуры данных" я выполнил множество заданий по реализации различных алгоритмов. Курс преподавался на языке программирования С, поэтому первая часть выполнена на языке С (Lesson 1-4), вторую часть я реализовал на языке Swift (Lessons 5-8).
- Ввести вес и рост человека. Рассчитать и вывести индекс массы тела
- Найти максимальное из четырех чисел, не используя массивы
- Написать программу обмена значениями двух целочисленных переменных
- Написать программу нахождения корней заданного квадратного уравнения
- С клавиатуры вводится номер месяца. Требуется определить, к какому времени года он относится
- Ввести возраст человека (от 1 до 150 лет) и вывести его вместе с последующим словом «год», «года» или «лет»
- С клавиатуры вводятся числовые координаты двух полей шахматной доски (x1,y1,x2,y2). Требуется определить, относятся поля к одному цвету или нет
- Ввести a и b и вывести квадраты и кубы чисел от a до b
- Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления
- Дано целое число N (> 0). С помощью операций деления нацело и взятия остатка от деления определить, имеются ли в записи числа N нечетные цифры. Если имеются, то вывести True, если нет — вывести False
- С клавиатуры вводятся числа, пока не будет введен 0. Подсчитать среднее арифметическое всех положительных четных чисел, оканчивающихся на 8
- Написать функцию нахождения максимального из трех чисел
- Написать функцию, генерирующую случайное число от 1 до 100. С использованием стандартной функции rand() и без использования стандартной функции rand()
- Напишите программу, которая вводит натуральное число N и выводит на экран все автоморфные числа, не превосходящие N
- Реализовать функцию перевода из десятичной системы в двоичную, используя рекурсию.
- Реализовать функцию возведения числа a в степень b: без рекурсии; рекурсивно; рекурсивно, используя свойство четности степени
- Оптимизировать пузырьковую сортировку. Сравнить количество операций сравнения оптимизированной и не оптимизированной программы. Написать функции сортировки, которые возвращают количество операций.
- Реализовать шейкерную сортировку
- Реализовать бинарный алгоритм поиска в виде функции, которой передается отсортированный массив. Функция возвращает индекс найденного элемента или -1, если элемент не найден
- Количество маршрутов с препятствиями. Реализовать чтение массива с препятствием и нахождение количество маршрутов
- Решить задачу о нахождении длины максимальной последовательности с помощью матрицы
- Реализовать перевод из десятичной в двоичную систему счисления с использованием стека
- Добавить в программу «реализация стека на основе односвязного списка» проверку на выделение памяти
- Написать программу, которая определяет, является ли введенная скобочная последовательность правильной
- Реализовать простейшую хеш-функцию. На вход функции подается строка, на выходе сумма кодов символов
- Переписать программу, реализующую двоичное дерево поиска. Добавить в него обход дерева различными способами. Реализовать поиск в двоичном дереве поиска
- Написать функции, которые считывают матрицу смежности из файла и выводят ее на экран
- Написать рекурсивную функцию обхода графа в глубину
- Написать функцию обхода графа в ширину
- Реализовать сортировку подсчетом
- Реализовать быструю сортировку
- Проанализировать время работы каждого из вида сортировок