Всё про Алгоритмы и Структуры данных
Open in Telegram
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество, авторские права: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/structuredata
Show more7 757
Subscribers
+124 hours
-37 days
-2430 days
Posts Archive
Даже если у вас нет диплома мехмата, вы можете успешно работать в IT. Например, крутые аналитики получаются из научных работников, исследователей, продавцов, медиков и других специалистов. Каких ещё — расскажем на вебинаре. А ещё поделимся историями студентов, которые кардинально меняли сферу работы на IT.
→ Бесплатно, 6 июня в 19:00 Мск
Вебинар проведёт Артём Исакин, руководитель трудоустройства в направлении анализа данных Яндекс Практикума.
Вы узнаете:
— из каких 10 профессий чаще всего переходят в анализ данных;
— какие навыки и качества помогают закончить обучение и найти работу;
— как кардинально поменять сферу деятельности;
— как новичкам «переупаковать» прошлый опыт, чтобы понравиться работодателям.
В конце можно будет задать вопросы и попросить совета.
→ Зарегистрироваться на вебинар
Реклама АНО ДПО "Образовательные технологии Яндекса», ИНН:7704282033, erid: LjN8KWuoC
Зачем учить алгоритмы
Новички в программировании часто думают, что изучение алгоритмов никогда не пригодится им на практике.
Поэтому, в этом видео автор называет конкретные причины того, почему вам нужно изучать алгоритмы и подробно рассказывает, что именно вам нужно освоить.
🎬 Смотреть на YouTube
🗓 Подготовительный курс по Python-разработке. 990 рублей. Старт 7 июня.
✔️Научиться понимать код на Python — а не переписывать
✔️Написать конвертер валют — ощутить вкус реального продакшена
✔️Создать основу своего пет-проекта — всего за 14 дней
Вас ждет 70 уроков теории и практики прямо в браузере, вебинары, лайвкодинг и первая собственная программа на Python, написанная под руководством опытного наставника.
Присоеденяйтесь!
Решение 16 задач для подготовки к собеседованию на JS-разработчика
Внутри — разбор задач различной сложности, затрагивающих темы от строк и массивов до различных алгоритмов и ООП:
https://www.youtube.com/watch?v=x-EZy6gu_38
🚀 Пройди подготовку к алгоритмическим собеседованиям!
📌 "Книжного академического образования недостаточно. Книги - это замечательно, но они не помогут вам пройти собеседование. Почему? Подскажу: интервьюверы не видели красно-черных деревье со времен своего обучения в университете. Чтобы успешно пройти собеседование, нужно готовиться на реальных вопросах, встречающихся на собеседованиях" - Лакман Макдауэлл
🗓 4 июня в 18:00 по МСК пройдет бесплатный урок по подготовке к алгоритмическим собеседования от Senior разработчика из Тинькофф (ex-разработчика Яндекс, Huawei)
На открытом уроке решишь >10 задач, изучишь теорию, которая точно пригодится на собеседовании, и сможешь задать вопросы человеку, который успешно прошел алгоритмические секции в OZON, Tinkoff, VK, СБЕР, Яндекс и Авито
Зарегестрироваться
🌳 Деревья и графы: что это такое и почему их обязательно нужно знать каждому программисту
В этой части материала мы рассмотрим деревья и графы, а также теорию, которая стоит за ними. Выполним реализацию на языке Python и покажем, как можно использовать эти понятия на примере челленджей Leetcode.
https://proglib.io/p/derevya-i-grafy-chto-eto-takoe-i-pochemu-ih-obyazatelno-nuzhno-znat-kazhdomu-programmistu-2022-06-13
Алгоритмы и структуры данных для технических интервью на Python
🔹Урок 1. Введение в Python - Смотреть
🔹Урок 2. Циклы и словари в Python - Смотреть
🔹Урок 3. Функции и рекурсия в Python - Смотреть
🔹Урок 4. class'ы в Python - Смотреть
🔹Спец-урок. Разбор задач 1-4 недель - Смотреть
🔹Урок 5. Функции в Python - Смотреть
🔹Урок 6. Большое O - Смотреть
🔹Урок 7. Стек, дек и очередь - Смотреть
🔹Урок 8. Бинарный поиск - Смотреть
🔹Урок 9. Решение домашних задач - Смотреть
Как развернуть сложные модели как Transformers и подружить их с инфраструктурой? Как сделать предобработку текста для классификации отзывов?
Благодаря глубоким знаниям предметной области Natural Language Processing вы сможете ответить на эти вопросы.
На курсе по обработке естественного языка (NLP) вы научитесь грамотно извлекать информацию из текста, решать задачи информационного поиска, распознания речи и генерации текста. Погружаться в область вы будете под руководством экспертов из Digital habits, EORA, Ozon Tech и Delivery Hero.
Всю теорию вы будете отпрабатывать на практических заданиях. Дополнительно вы получите доступ к мастер-классам с примерами реальных проектов по NLP, которые потом сможете реализовать у себя в компании.
На курсе Easy NLP вы получите необходимые знания для работы специалистом в данной области, а также разберете все нестандартные ситуации и сложные моменты.
Старт потока 19 июня, присоединяйтесь по ссылке
Промокод (всего 10 штук) на скидку 5% EASYNLPALGORITHMS
Разбор задач с собеседований в Google
4 задачи из видео когда-то задавали потенциальным сотрудникам Google во время собеседований. Сейчас их можно решать на платформе LeetCode.
Решение задач: https://youtu.be/uKSuAhU516c
Алгоритмическая задача про острова
Решаем алгоритмическую задачу с собеседований про острова несколькими способами: реализация на языках Java и C#.
https://tproger.ru/problems/algoritmicheskaja-zadacha-pro-ostrova/
Я сейчас Принципы, лежащие в основе алгоритмов и структур данных, всегда актуальны для любого стека технологий. Если вы уверенно владеете одним из языков программирования: C++, Python, Java, Go, JavaScript или C#, вам подойдет курс Яндекс Практикума «Алгоритмы и структуры данных». Мы поможем вам разложить все по полочкам, научим писать более чистый код, видеть разные варианты решения задачи и сравнивать их по эффективности, а ещё вы:
• разберётесь в основных алгоритмах;
• узнаете, как устроены структуры данных и когда какие применять;
• научитесь тестировать свой код и доказывать его корректность.
На всех этапах вас будут сопровождать опытные разработчики: мы не дадим просесть по учёбе и поможем выкроить время на образование. Вы будете практиковаться на реальных кейсах и положите в портфолио работающие проекты. А карьерные консультации подготовят вас к разговору о повышении или помогут с поиском новой работы.
Пройдите первый бесплатный урок и начните учиться.
Действительно ли компьютер генерирует случайное число?
Алгоритмы, которые мы используем в своих программах для генерации случайных чисел, на самом деле выдают не совсем случайные значения. В основе генератора псевдослучайных чисел (ГПСЧ) лежит семя (seed), от которого отталкивается алгоритм.
Но существуют и другие варианты поиска случайного числа. С ними и ГСПЧ вы можете ознакомиться в статье:
https://nuancesprog.ru/p/14619/
Структура данных пирамида (двоичная куча) в Java
Пирамида представляет собой дерево значений. Значение узлов в неё больше или равно значениям узлов-потомков. Поэтому верхний элемент всегда будет иметь максимальное значение
Подробнее о пирамиде и её реализации на Java:
https://javarush.ru/groups/posts/3083-strukturih-dannihkh-piramida-dvoichnaja-kucha-v-java
Структура данных - хеш-таблица
Хеш-таблица - структура данных, в которой данные хранятся ассоциативно. По факту, данные хранятся в формате массива, где каждое значение имеет свое уникальное значение индекса. Доступ к данным становится очень быстрым, если мы знаем этот индекс, а не идем перебором.
Таким образом данная структура данных примечательна тем, что операция вставки и поиска - выполняются очень быстро и независимо от размера данных.
Хеширование - метод для преобразования диапазона значений ключа в диапазон индекса массива. Внутри используется оператор по модулю, чтобы получить как раз таки этот диапазон значений ключа.
Если ячейка индекса уже занята, то мы будем искать следующее пустое место в массиве, просматривая следующую ячейку, пока не найдем пустую. Данный способ называется линейным зондированием
Решение задачи: проверка балансировки скобок в выражении на JS/Python/C++
Задача: проверка балансировки скобок в выражении
Очень типичная задача на использование Stack как структуры данных. Суть такова, необходимо проверить что в выданном вами выражении - правильный порядок скобок разного типа (“{“, “}”, “(“, “)”, ““, “”)
К примеру:
1. exp = "(){}({})"
result = true
2. exp = "(){)"
result = false
Алгоритм:
1. Объявить стек символов S
2. Проходимся по всей строке от начала до конца:
Если текущий символ является начальной скобкой, если да поместить в стек
Если текущий символ закрывающая скобка (обратный вариант), то достаем из стека и сверяем совпадают ли по типу данные скобки (естественно предварительно надо иметь либо object(JS, TS), либо dictionary(python) с соответствием)
Если скобки не совпадают - соответствено выражение не сбалансировано и можно кидать сразу False
3. После полного обхода, если в стеке еще осталась какая-либо скобка - выражение также не сбалансировано
Хотите узнать как работают такие ML модели как Midjourney? Или что из себя представляют современные сверточные нейронные сети?
✅ Мы подготовили для вас несколько интересных статей:
- Визуализация в Data Science. Что еще помимо matplotlib и seaborn?
- Что такое MLOps? И какие этапы содержит данная методология
- Какие способы токенизации используют для таких моделей как BERT и GPT-3
- Какие навыки необходимо развивать, чтобы дорасти до Senior Data Scientist
- Эволюция GPT моделей от GPT-1 до ChatGPT
Выбирай любую статью и подписывайся на канал PyMagic, чтобы не пропустить новый полезный контент и новости из мира Data Science!
Асимптотический анализ
Я часто говорю о какой-то сложности алгоритма, но так ни разу и не сказал, как же эта сложность вычисляется и откуда берется!
Асимптотический анализ алгоритма относится к определению математического формирования его производительности во время выполнения. Используя данный анализ, мы можем очень хорошо определить наилучший, средний и худший сценарии алгоритма.
Асимптотический анализ так или иначе связан с входными параметрами. Если они отсутствуют, мы можем считать, что алгоритм работает за константное время.
Асимптотический анализ относится к вычислению времени выполнения любой операции в математических единицах вычисления. Например, время выполнения одной операции вычисляется как f (n) и может быть для другой операции оно вычисляется как g (n 2 ). Это означает, что время выполнения первой операции будет линейно увеличиваться с увеличением n, а время выполнения второй операции будет увеличиваться экспоненциально при увеличении n.
Ребят, хватит спамить мне в лс по поводу безлимитных запросов к MidJourney-5.
Оставляю ссылку на официальный канал, где она доступна бесплатно без лимитов вместе с ChatGPT: @midjourney5
Available now! Telegram Research 2025 — the year's key insights 
