Пост № 3. Алгоритмы и структуры данных
Продолжая серию постов об обучении на backend-разработчика, расскажу про следующий тематический блок: основы алгоритмов. Выяснил, почему они важны для программиста. Ведь от правильного выбора алгоритма зависит скорость работы программы даже при большом объёме данных!
Разобрал несколько популярных алгоритмов:
- Линейный поиск (перебираем элементы массивы один за другим);
- Бинарный поиск (сравниваем целевой элемент с серединой отсортированного массива);
- Сортировка пузырьком (элементы как бы "всплывают" вверх по мере сортировки массива).
Выяснил, что такое «сложность алгоритма». Оценивали её по двум параметрам: времени выполнения и потребляемой памяти. Это помогло лучше понять, какие алгоритмы работают быстрее и эффективнее.
Также познакомился с понятием «структуры данных», которое описывает способы хранения информации. Узнал, насколько важно учитывать типы данных при выборе алгоритмов.
Изучил популярные методы решения задач:
- «Наивный» подход: просто делаем так, чтобы работало;
- Метод двух указателей: позволяет сразу отбрасывать неподходящие варианты;
- Метод скользящего окна: работаем с частью массива, постепенно перемещаясь по нему.
Заключительное задание блока — задача службы доставки. Нужно было написать программу для марсохода, который перевозит роботов-исследователей. У каждого робота свой вес, а платформа имеет ограниченную грузоподъемность. Требовалось найти минимальное число платформ для транспортировки всех роботов.
Задача оказалась интересной и сложной, но я справился! Блок завершён успешно. :)
Предыдущие посты серии здесь:
Лига программистов
2K поста11.8K подписчиков
Правила сообщества
- Будьте взаимовежливы, аргументируйте критику
- Приветствуются любые посты по тематике программирования
- Если ваш пост содержит ссылки на внешние ресурсы - он должен быть самодостаточным. Вариации на тему "далее читайте в моей телеге" будут удаляться из сообщества