Data Science: Алгоритмы и Структуры данных
Open in Telegram
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество: @oleginc Канал на бирже: https://telega.in/c/structuredata
Show more7 575
Subscribers
-324 hours
-197 days
-6630 days
Posts Archive
Решаем задачу о поиске пары ближайших точек
Представьте, что перед вами множество точек. Как найти пару точек, которые будут находиться на минимальном расстоянии друг от друга?
Одно из решений задачи сводится к использованию метода «разделяй и властвуй». Более подробно о нём рассказано в видео с примером реализации на Python:
https://youtu.be/Dx5eiQdv4k8
LeetCode теперь в Telegram!
LeetCode — это сайт, который позволяет быстро готовиться к техническим собеседованиям по программированию. Там публикуются задачи с собеседований в FAANG с решениями.
Подписывайтесь: @leetcode
Слышали ли вы о гипотезе Коллатца?
Наверняка нет. Этот интересный математический фокус не имеет математического доказательства, но и опровергнуть никто не смог.
Попробуйте загадать любое целое положительное число и затем следуйте простому алгоритму:
1. Если число чётное, разделите его на 2. Иначе умножьте его на 3 и прибавьте 1.
2. Повторите шаг 1 с полученным числом.
Заметили ли какую-нибудь закономерность? Пишите в комментариях.
Подробнее об этом фокусе читайте здесь: https://tprg.ru/eApw
Связные списки: объяснение и реализация на JavaScript
В связном списке данные хранятся друг за другом. При этом в каждом элементе списка содержится поле с данными и поле с ссылкой на следующий элемент.
В видео показано, как реализовать собственный связный список со всеми необходимыми методами:
https://youtu.be/QdCyTTid9-U
🐍 Теперь Python можно легко выучить по гайдам в картинках.
Первый канал с гайдами по Python — @guides_python
Реализуем на C# поиск суммы цифр числа
В этом уроке рассматриваются два метода: с помощью рекурсии и с помощью циклов:
https://youtu.be/c4h0FKXkWf8
Структура данных «очередь» (queue) — принципы работы
С понятием очереди вы наверняка хорошо знакомы. В программировании она используется для обработки данных, запросов и событий в том порядке, в котором они попали в очередь.
Подробнее об этой структуре данных поясняется в ролике: https://youtu.be/fmHyFTji-Lc
Двоичное (бинарное) дерево поиска
Структуры данных «деревья» широко распространены в программировании, например каталог проекта или DOM-дерево в веб-разработке.
Среди них особенно выделяется двоичное дерево поиска, которое позволяет существенно ускорить поиск элементов.
Подробнее о структуре двоичного дерева и его реализации в коде:
https://tprg.ru/YpfD
Стать разработчиком, на зная английского – реально? 🇺🇸
Баг, либа, деплой, юзер, бэкенд, стек, фронтенд, бранч, скрам, фича – инглиш плотно засел в программировании. Не учить его – всё равно что суп вилкой есть.
На канале Руинглиш вы найдёте весь мастхэв для айтишника. Технические слова, идиомы и главное – яркие иллюстрации, с которыми всё запоминается быстрее.
Подписывайся и больше никогда не полезешь в переводчик с мыслями «бл, как пишется это слово» и не будешь теряться на митах: @RuEnglish
Ищем повторяющиеся элементы в массиве
Предположим, вам нужно найти дубликат элемента в массиве. Как бы вы решили эту проблему?
Сначала подумайте, а затем загляните в статью, чтобы узнать о различных способах решения: https://tprg.ru/FtTI
Классические алгоритмы генерации лабиринтов
Попробуйте свои силы в генерации лабиринтов — интересном проекте, который можно реализовать на любом популярном языке программирования. Работа над проектом отточит ваши навыки кодинга, а результат пригодится, если вы соберётесь в геймдев.
Алгоритм двоичного дерева и алгоритм SideWinner: https://tprg.ru/RWAC
Алгоритм Олдоса-Бродера и алгоритм Уилсона: https://tprg.ru/IneP
Существуют ли востребованная во всем мире техническая профессия, не связанная с программированием?
Определенно, да. И эта профессия заключается в создании 3D изображений.
3D специалисты за 3-7 дней могут создать с нуля в специальной программе различные модели на заказ. Например, модели мебели, декора, ювелирки, игровых персонажей.
Спрос большой, поэтому платят моделлерам соответственно - от 20 до 60.000 руб за набор моделей.
Приглашаем вас попробовать себя в роли 3D специалиста на бесплатном 14-ти дневном онлайн-тренинге. Его устраивает Олег Кононыхин - 3D моделлер с опытом более 18-ти лет, который работал с Газпромом и Сбербанком.
На тренинге он бесплатно обучит желающих без опыта созданию 3D моделей и визуализаций на примере интерьера.
Кстати, в конце Олег заплатит 10.000 руб автору лучшей работы.
Старт 8 июля, участники уже устанавливают программы. Для регистрации на тренинг перейдите по ссылке и нажмите "Start" (Начать) -> https://t.me/diskill2_bot
Ищем кратчайший путь в лабиринте: объяснение на Python
Поиск пути является одной из типичных задач в программировании. Однако принципы алгоритмов поиска достаточно трудно освоить новичкам.
Понять лучше алгориты поиска пути можно на примере задачи по поиску выхода из двухмерного лабиринта. А руководство поможет разобраться с реализацией на Python популярного алгоритма поиска пути — алгоритма Дейкстры:
https://habr.com/ru/company/piter/blog/596029/
Всего за 1-3 месяца в удаленном формате вы можете освоить цифровую профессию бесплатно и начать работать по специальности. Выдается удостоверение о повышении квалификации или диплом о проф. переподготовке.
Федеральный проект "Содействие занятости" приглашает граждан, имеющих высшее или среднее профессиональное образование. Принять участие могут:
— безработные
— женщины в декрете с детьми до 3 лет
— неработающие матери детей до 7 лет
— неработающие выпускники и студенты до 35 лет
— граждане 50+
Полный список категорий на сайте.
Обучитесь на:
— Системного аналитика
— Аналитика данных
— Аналитика маркетплейсов
— Разработчика сайтов на Тильде
— Тестировщика ПО
есть и другие курсы на ваш выбор.
Спешите подать заявку, количество мест ограниченно!
Возврат нескольких значений из функции Python
Чтобы в Python вернуть из функции сразу несколько значений, нужно воспользоваться структурами данных. Так вы можете передать из функции данные в виде списка, кортежа или словаря.
Как это сделать, объясняется в статье:
https://pythonist.ru/vozvrat-neskolkih-znachenij-iz-funkczii/
Реализуем односвязный список на C++
У массивов в C++ есть недостаток — к существующему массиву нельзя добавить дополнительный элемент. С этой задачей справляются динамические структуры данных. Одной из них является односвязный список (теория).
За три урока вы сможете реализовать эту структуру данных на C++: часть 1, часть 2 и часть 3.
Умножение и деление сдвигом
В программировании существует специальная операция — арифметический сдвиг. Он позволяет существенно быстрее умножить или поделить число на степени двойки, чем обычные операции умножения и деления. Весь секрет — в строении двоичных чисел.
Как работает левый (<<) и правый (>>) арифметический сдвиг, хорошо объясняется в лекции:
https://youtu.be/_pLHvK-X4qg
