Skip to content

CasperNEw/Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Algorithms

При прохождении курса "Алгоритмы и структуры данных" я выполнил множество заданий по реализации различных алгоритмов. Курс преподавался на языке программирования С, поэтому первая часть выполнена на языке С (Lesson 1-4), вторую часть я реализовал на языке Swift (Lessons 5-8).

Описание файлов

Lesson_1 Простые алгоритмы

  • Ввести вес и рост человека. Рассчитать и вывести индекс массы тела
  • Найти максимальное из четырех чисел, не используя массивы
  • Написать программу обмена значениями двух целочисленных переменных
  • Написать программу нахождения корней заданного квадратного уравнения
  • С клавиатуры вводится номер месяца. Требуется определить, к какому времени года он относится
  • Ввести возраст человека (от 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

Lesson_2 Асимптотическая сложность алгоритма. Рекурсия

  • Реализовать функцию перевода из десятичной системы в двоичную, используя рекурсию.
  • Реализовать функцию возведения числа a в степень b: без рекурсии; рекурсивно; рекурсивно, используя свойство четности степени

Lesson_3 Поиск в массиве. Простые сортировки

  • Оптимизировать пузырьковую сортировку. Сравнить количество операций сравнения оптимизированной и не оптимизированной программы. Написать функции сортировки, которые возвращают количество операций.
  • Реализовать шейкерную сортировку
  • Реализовать бинарный алгоритм поиска в виде функции, которой передается отсортированный массив. Функция возвращает индекс найденного элемента или -1, если элемент не найден

Lesson_4 Динамическое программирование. Поиск с возвратом

  • Количество маршрутов с препятствиями. Реализовать чтение массива с препятствием и нахождение количество маршрутов
  • Решить задачу о нахождении длины максимальной последовательности с помощью матрицы

Lesson_5 Динамические структуры данных

  • Реализовать перевод из десятичной в двоичную систему счисления с использованием стека
  • Добавить в программу «реализация стека на основе односвязного списка» проверку на выделение памяти
  • Написать программу, которая определяет, является ли введенная скобочная последовательность правильной

Lesson_6 Деревья

  • Реализовать простейшую хеш-функцию. На вход функции подается строка, на выходе сумма кодов символов
  • Переписать программу, реализующую двоичное дерево поиска. Добавить в него обход дерева различными способами. Реализовать поиск в двоичном дереве поиска

Lesson_7 Графы. Алгоритмы на графах

  • Написать функции, которые считывают матрицу смежности из файла и выводят ее на экран
  • Написать рекурсивную функцию обхода графа в глубину
  • Написать функцию обхода графа в ширину

Lesson_8 Сложные сортировки

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

About

Implementation options for various algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published