Всё про Алгоритмы и Структуры данных
رفتن به کانال در Telegram
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество, авторские права: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/structuredata
نمایش بیشتر7 757
مشترکین
+124 ساعت
-37 روز
-2430 روز
آرشیو پست ها
Двоичное (бинарное) дерево поиска
Структуры данных «деревья» широко распространены в программировании, например каталог проекта или DOM-дерево в веб-разработке.
Среди них особенно выделяется двоичное дерево поиска, которое позволяет существенно ускорить поиск элементов.
Подробнее о структуре двоичного дерева и его реализации в коде:
https://tprg.ru/YpfD
Оценка сложности алгоритма проще, чем кажется
Если вы изучали различные алгоритмы (например, сортировки массивов), то наверняка встречали запись в духе O(n*logn). Это и есть оценка сложности алгоритма. Она показывает, насколько быстро растёт сложность алгоритма с увеличением размера входных данных.
В статье разбираются основные порядки роста, а также что нужно замерять для оценки сложности: https://tprg.ru/LQI2
Создание и обход двоичного дерева, а также реализация на JavaScript
Двоичное дерево состоит из корня (верхний элемент), внутренних узлов и листьев (узлы без потомков). Оно подчиняется определённым правилам, благодаря чему происходит быстрый поиск элементов.
Статья поможет реализовать на JavaScript двоичное дерево и организовать обход его узлов:
https://tprg.ru/09wZ
Как вычислить числа Фибоначчи?
На собеседовании по алгоритмам могут попросить реализовать вывод ряда Фибоначчи. Он строится по следующему правилу: первые два элемента равны 0 и 1, а каждый последующий элемент равен сумме двух предшествующих.
В статье показано, как вычислить числа Фибоначчи на Java тремя способами — циклом, рекурсией и с помощью Stream:
https://tprg.ru/sAUb
Ключевые алгоритмические парадигмы для решения нестандартных задач
В спортивном программировании для решения задач используются ключевые алгоритмические парадигмы, на базе которых реализуется алгоритм решения:
— полный поиск;
— жадный алгоритм;
— «разделяй и властвуй»;
— динамическое программирование.
Подробнее о парадигмах (с примерами на C++): https://tprg.ru/Q8bw
Ключевые алгоритмические парадигмы для решения нестандартных задач
В спортивном программировании для решения задач используются ключевые алгоритмические парадигмы, на базе которых реализуется алгоритм решения:
— полный поиск;
— жадный алгоритм;
— «разделяй и властвуй»;
— динамическое программирование.
Подробнее о парадигмах (с примерами на C++): https://tprg.ru/Q8bw
Структура данных «связный список»
Связные списки по сравнению с массивами хороши тем, что могут хранить произвольное количество объектов. При этом сами объекты имеют внутри ссылку на следующий объект в списке (односвязный список), а также на предыдущий объект, если список двусвязный.
Подробнее о связных списках и их методах:
https://tproger.ru/translations/linked-list-for-beginners/
Действительно ли компьютер генерирует случайное число?
Алгоритмы, которые мы используем в своих программах для генерации случайных чисел, на самом деле выдают не совсем случайные значения. В основе генератора псевдослучайных чисел (ГПСЧ) лежит семя (seed), от которого отталкивается алгоритм.
Но существуют и другие варианты поиска случайного числа. С ними и ГСПЧ вы можете ознакомиться в статье:
https://nuancesprog.ru/p/14619/
Считается, что аналитика и Data Science — сложные сферы, требующие особого склада ума. В реальности же основные языки работы с данными — SQL и Python — можно изучить, не имея технического образования или опыта в программировании.
Каждый может найти себя в сфере аналитики и Data Science и подобрать себе направление по душе. Главное — задаться целью, быть любопытным и правильно спланировать погружение в новую профессию. В этом поможет бесплатный пошаговый гайд «Как войти в сферу данных и выбрать своё направление».
В гайде:
- Полное описание ролей и компетенций в сфере работы с данными — так вы поймёте, с чего начать свой путь в профессию
- Чек-листы навыков, необходимые начинающему аналитику данных, системному аналитику, дата-сайентисту и другим представителям сферы данных
- Ссылки на полезные ресурсы, книги и бесплатные курсы
- Советы HR-специалистов о том, как правильно составить резюме и наработать портфолио
- Рейтинг зарплат для начинающих позиций в проектах по аналитике и Data Science
Скачать план → https://netolo.gy/b4Af
Реклама. ООО «Нетология» LatgC9sxY
Структура данных пирамида (двоичная куча) в Java
Пирамида представляет собой дерево значений. Значение узлов в неё больше или равно значениям узлов-потомков. Поэтому верхний элемент всегда будет иметь максимальное значение
Подробнее о пирамиде и её реализации на Java:
https://javarush.ru/groups/posts/3083-strukturih-dannihkh-piramida-dvoichnaja-kucha-v-java
Решето Эратосфена – это алгоритм нахождения простых чисел до заданного натурального числа путем постепенного отсеивания составных чисел. Образно говоря, через решето Эратосфена в процессе его тряски проскакивают составные числа, а простые остаются в решете.
Видео с объяснением этого алгоритма и его реализацией на YouTube - https://www.youtube.com/watch?v=LMc07ydUcSo&t=4s
Решето Эратосфена – это алгоритм нахождения простых чисел до заданного натурального числа путем постепенного отсеивания составных чисел. Образно говоря, через решето Эратосфена в процессе его тряски проскакивают составные числа, а простые остаются в решете.
Видео с объяснением этого алгоритма и его реализацией на YouTube - https://www.youtube.com/watch?v=LMc07ydUcSo&t=4s
Что почитать: «Алгоритмы. Построение и анализ» Т.Кормена и Ч.Лейзерсона
Must-have книга для любого разработчика. Начинающим программистам не обязательно читать её всю, а изучить в первую очередь виды сортировок, элементарные структуры данных, двоичные деревья и хеш-таблицы. Тем более алгоритмы разбиты по самодостаточным главам, поэтому к книге можно возвращаться время от времени, чтобы подтянуть знания.
Обзор книги - https://tprg.ru/KO4u
Что послушать: подкаст об алгоритмах и собеседованиях
Сегодня мы предлагаем послушать подкаст, где бывший сотрудник «Яндекса» Алексей Шаграев рассказал, какие алгоритмы используются в командах и почему на собеседовании задают много вопросов про алгоритмы.
Алексей имеет за плечами много опыта в собеседовании разработчиков, поэтому в подкасте много историй из реальной жизни:
soundcloud.com/podlodka/podlodka-195-algoritmy-i-sobesedovaniya
Словари и их методы в Python
Структура данных словарь хранит в себе пары «ключ-значение». При этом одному ключу может соответствовать целое множество значений.
На практики в словари могут записываться, например:
— имя и оценка студентов;
— название и цена товаров;
— название и численность населения городов.
Подробнее о словарях, а также методах работы с ними:
https://tproger.ru/explain/python-dictionaries/
Как работают алгоритмы сортировки? Разбираем с примерами на Python
Мы рассмотрели в статье наиболее популярные методы сортировки, а также сравнили их по времени исполнения.
Сохраняйте в закладки, чтобы не забыть: https://tprg.ru/VHC5
Иногда аналитику или специалисту по DS нужно подтянуть что-то по математике, чтобы решать более сложные задачи на работе. На курсе Яндекс Практикума можно раз и навсегда разобраться с тервером, линалом, матаном и статистикой. А потом — расти в карьере.
Учёбу удобно совмещать с работой: теория и практика будут в интерактивном тренажёре, который можно скачать на смартфон. А опытные преподаватели математики всегда на связи в чате, чтобы объяснить непонятное.
За 4 месяца обучения вы:
→ решите более тысячи задач в онлайн-тренажёре,
→ создадите 4 проекта для своего портфолио,
→ подготовитесь к собеседованиям с помощью симулятора.
Пройдите первый бесплатный урок
Уроки по алгоритмам сортировки в Python
Хотите разобраться в алгоритмах сортировки? Ролики ниже помогут не только освоить теорию основных алгоритмов сортировки, но и научиться их реализовывать на Python:
1. Сортировка пузырьком.
2. Сортировка слиянием.
3. Быстрая сортировка.
4. Сортировка подсчётом.
Насколько хорошо вы знаете алгоритмы?
Проверьте себя в этом тесте:
https://tproger.ru/quiz/algorithms/
Курс лекций по дополнительным главам математики
Если вы хотите подтянуть знания по такой структуре данных, как деревья, то на YouTube есть курс лекций, которые читались в Computer Science Center осенью 2019 года (эти ребята сделали кучу бесплатных курсов на Stepik и Coursera).
В первой лекции разбирается структура данных куча: https://youtu.be/tN265RlKXVg
Плейлист с лекциями: https://youtube.com/playlist?list=PLlb7e2G7aSpTEzw546U6-Q6_2jt48ym4I
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
