2

Пост № 3. Алгоритмы и структуры данных

Продолжая серию постов об обучении на backend-разработчика, расскажу про следующий тематический блок: основы алгоритмов. Выяснил, почему они важны для программиста. Ведь от правильного выбора алгоритма зависит скорость работы программы даже при большом объёме данных!

Разобрал несколько популярных алгоритмов:

- Линейный поиск (перебираем элементы массивы один за другим);

- Бинарный поиск (сравниваем целевой элемент с серединой отсортированного массива);

- Сортировка пузырьком (элементы как бы "всплывают" вверх по мере сортировки массива).

Выяснил, что такое «сложность алгоритма». Оценивали её по двум параметрам: времени выполнения и потребляемой памяти. Это помогло лучше понять, какие алгоритмы работают быстрее и эффективнее.

Также познакомился с понятием «структуры данных», которое описывает способы хранения информации. Узнал, насколько важно учитывать типы данных при выборе алгоритмов.

Изучил популярные методы решения задач:

- «Наивный» подход: просто делаем так, чтобы работало;

- Метод двух указателей: позволяет сразу отбрасывать неподходящие варианты;

- Метод скользящего окна: работаем с частью массива, постепенно перемещаясь по нему.

Заключительное задание блока — задача службы доставки. Нужно было написать программу для марсохода, который перевозит роботов-исследователей. У каждого робота свой вес, а платформа имеет ограниченную грузоподъемность. Требовалось найти минимальное число платформ для транспортировки всех роботов.

Задача оказалась интересной и сложной, но я справился! Блок завершён успешно. :)

Предыдущие посты серии здесь:

Пост № 1. Знакомство
Пост № 2. Python

Лига программистов

2K поста11.8K подписчиков

Правила сообщества

- Будьте взаимовежливы, аргументируйте критику

- Приветствуются любые посты по тематике программирования

- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества