Всё про Алгоритмы и Структуры данных
Ir al canal en Telegram
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество, авторские права: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/structuredata
Mostrar más7 764
Suscriptores
Sin datos24 horas
-67 días
-3430 días
Archivo de publicaciones
Ускоряем работу с графами в 20000 раз
Периодически возникают задачи и проекты, где данные имеют структуру графа. Например, данные о компьютерных сетях, где узлы связаны между собой. А на узлах зарегистрированы пользователи и они связаны или не связаны между собой. Еще пример — результат работы какого-то web crawler, который собирает данные из сети и хранит ссылки страниц между собой. Социальные сети. Список друзей, у которых тоже есть друзья — граф. Населенные пункты и дороги между ними — еще один пример графа.
Чтобы нам было удобнее давайте определимся с решаемой задачей. Допустим мы делаем систему администрирования некоторого сетевого ПО. Это ПО установлено на всех узлах сети. И из центра администрирования оно получает конфигурацию своей работы. Сети на практике большие, несколько администраторов одновременно могут включать и отключать связи между узлами. Либо напрямую, либо неявно через какие-то косвенные настройки. Наша задача обнаружить несвязанные сегменты в получившейся сети и не сохранить такую конфигурацию. Потому что плохая конфигурация приведет к неработоспособности.
https://habr.com/ru/articles/650007/
Алгоритмы и Структуры данных
GIMP Script-Fu ООП. Встраиваем векторы в систему классов Фигур и все Фигуры в язык Функциональной геометрии
В предыдущей статье мы рассмотрели имеющиеся в GIMP возможности векторной графики. Здесь мы рассмотрим как эти возможности использовать при построении графических примитивов - Фигур. Для построения абстракций фигур мы уже написали несколько классов: Фигуры рисуемых по контуру Кистью и Карандашом, Фигур заполняемых определённым цветом, Комбинированных Фигур, Фигур использующих Изображения и Фигур использующих Текст. Здесь я продемонстрирую, как легко и непринуждённо мы можем встроить новые абстракции в существующую иерарахию классов. А заодно рассмотрим как вся эта иерархия классов может испольоваться в языке функциональной геометрии, рассмотренном в предыдущем цикле статей.
https://habr.com/ru/articles/937886/
Алгоритмы и Структуры данных
Создаем простого грид-бота для Московской биржи через QUIK и Python
Алгоритмическая торговля на Московской бирже с помощью терминала QUIK остаётся популярным способом автоматизировать стратегии. В этой статье мы напишем грид-бота, который выставляет ордера сеткой вокруг текущей цены и зарабатывает на колебаниях.
https://habr.com/ru/articles/937842/
Алгоритмы и Структуры данных
Сравниваем кривые линии по форме
Не так давно писал в качестве pet-проекта гиперказуальную игру с примитивной механикой, а именно: максимально быстро и точно повторить кривую линию. Идея максимально простая, но задача сравнения двух кривых оказалась довольно интересной. В этой статье я опишу разные идеи, которые рассматривал (в основном провальные) и конечный вариант, к которому я пришел.
https://habr.com/ru/articles/650013/
Алгоритмы и Структуры данных
Путеводитель по ТОП-20 удаленным и самым прибыльным профессиям 2025 года.
Что выбрать: дизайн, программирование, маркетинг или управление?
Онлайн-школа Skillbox подготовила для вас удобный и простой материал по 20 профессиям которые можно освоить легко и быстро с нуля.
Поддержка, подарки и пошаговый план действий — всё, чтобы вы начали зарабатывать удалённо.
Просто зарегистрируйтесь и получите материал бесплатно.
Как написать bzip2-архиватор на Python: разбираем преобразование Барроуза-Уилера
Это вторая статья в моем цикле об алгоритме архивации bzip2. Первую можно прочитать здесь, но для понимания сегодняшней темы она необязательна. Ниже я разберу преобразование Барроуза-Уилера — ключевой этап сжатия bzip2.
Немного контекста: в своем цикле статей я разбираю механизм работы алгоритма архивации bzip2 с примерами на Python. Всю предысторию такого сомнительного решения я объясняю в своей первой публикации. Вкратце — цикл преследует образовательную цель. Он вырос из небольшого пет-проекта, в котором я писал собственный bzip2-архиватор на Python (медленный и бинарно несовместимый со стандартным bzip2, но работающий).
https://habr.com/ru/companies/kts/articles/937554/
Алгоритмы и Структуры данных
Продвинутые техники RAG в действии
Всем привет! Представьте таблицу с сотнями или даже тысячами атрибутов. Как в условиях высокой размерности найти релевантные данные по запросу на естественном языке? Классические методы часто не справляются, нужны новые подходы.
Именно за эту сложную задачу взялась команда Департамента управления данными (SberData) в рамках эффективной интеграции ИИ‑агентов в Корпоративную аналитическую платформу Сбера (КАП), которая объединяет современные инструменты для работы с данными: хранение, интеграция, аналитика, моделирование и контроль качества данных. Наличие таких технологий, как продвинутые LLM (например, GigaChat), и большие объёмы данных делают исследование подобных задач актуальным для рынка больших данных.
В статье мы сравним эффективность векторного поиска, гибридных методов и подхода Retrieval‑Augmented Generation (RAG), оценим их влияние на точность результатов и обсудим практические ограничения.
https://habr.com/ru/companies/sberbank/articles/937242/
Алгоритмы и Структуры данных
Как мы преуспели на международном конкурсе по выращиванию цифрового салата
Настоящее всё больше походит на то, что некогда представлялось фантастикой. Меня зовут Павел Дудукин, руководитель Data Science-направления в Центре развития финансовых технологий (ЦРФТ) Россельхозбанка, и в этой статье расскажу, как мы вышли в финал международного конкурса Autonomous Greenhouse Challenge и что нас ждет дальше.
Объединённая команда Россельхозбанка (РСХБ) и Московского физико-технического института (МФТИ) приняла участие в хакатоне Autonomous Greenhouse Challenge в 2021 году. Там собрался народ, заинтересованный в автоматизации тепличного выращивания сельхозкультур. Наша команда заняла второе место, уступив лишь объединённой команде университетов из Китая. Мы опередили участников из Стэнфордского университета, MIT, международного концерна BASF, Технического университета Мюнхена и др.
https://habr.com/ru/companies/rshb/articles/650169/
Алгоритмы и Структуры данных
Структуры данных для frontend-разработчиков с реальными примерами
В мире frontend есть проблема: многие разработчики плохо ориентируются в структурах данных и не умеют их грамотно применять, чтобы получать эффективные и производительные решения своих задач.
Мы, Руслан Мирзоев и Тимофей Соломенников, разработчики онлайн-кинотеатра PREMIER, хотим поделиться своим опытом и на реальных примерах показать, что даёт правильное использование структур данных.
https://habr.com/ru/companies/habr_rutube/articles/934130/
Алгоритмы и Структуры данных
Вычисление периода записи дробной части числа в позиционных системах счисления
В статье о шумерских цифрах и их влиянии на арифметику я отметил, что запись рационального числа \frac{1}{7^{11}} в шестнадцатеричной системе имеет период {847425747} шестнадцатеричных цифр и предложил проверить это на калькуляторе. Речь про период цифр записи дробной части чисел вида \frac{1}{q}. Всякое рациональное число в такой позиционной системе счисления имеет либо конечную запись (терминирующуюся, например, {2} или {0.42}), либо бесконечную периодическую запись (например, \frac{1}{13} \approx 0.076923(076923)\ldots).
В статье о шумерских цифрах и их влиянии на арифметику я отметил, что запись рационального числа \frac{1}{7^{11}} в шестнадцатеричной системе имеет период {847425747} шестнадцатеричных цифр и предложил проверить это на калькуляторе. Речь про период цифр записи дробной части чисел вида \frac{1}{q}. Всякое рациональное число в такой позиционной системе счисления имеет либо конечную запись (терминирующуюся, например, {2} или {0.42}), либо бесконечную периодическую запись (например, \frac{1}{13} \approx 0.076923(076923)\ldots).
https://habr.com/ru/articles/936908/
Алгоритмы и Структуры данных
Вычисление периода записи дробной части числа в позиционных системах счисления
В статье о шумерских цифрах и их влиянии на арифметику я отметил, что запись рационального числа \frac{1}{7^{11}} в шестнадцатеричной системе имеет период {847425747} шестнадцатеричных цифр и предложил проверить это на калькуляторе. Речь про период цифр записи дробной части чисел вида \frac{1}{q}. Всякое рациональное число в такой позиционной системе счисления имеет либо конечную запись (терминирующуюся, например, {2} или {0.42}), либо бесконечную периодическую запись (например, \frac{1}{13} \approx 0.076923(076923)\ldots).
https://habr.com/ru/articles/936908/
Алгоритмы и Структуры данных
Россияне массово переходят на новый способ заработка – арбитраж криптовалют
Арбитраж – это единственная сфера, где можно зарабатывать от 5.000р в день. Причем потолка дохода вообще нет – те кто еще вчера не знал, что такое арбитраж, сегодня выходят на 200, 300 и даже 500 тысяч в месяц.
Чтобы войти в эту нишу, пока она не перегрелась, пользуйтесь инструкциями с канала Арбитраж Криптовалют.
Он идеально подходит людям, которые ничего не знают про заработок в интернете, но при этом хотят выйти на доход в $1000-2000.
Без рисков. Без серых схем и прочего барахла.
Успейте присоединиться, начать никогда не поздно: https://t.me/+szbzgRTCtXw1MWNl
Прием и парсинг NMEA-данных от GPS-приемника
GPS-приемники сегодня используются в самых разных устройствах - от автомобильных трекеров до беспилотных летательных аппаратов, независимо от применения, большинство таких модулей передают информацию о положении в формате NMEA 0183, в этой статье я разберу, как принять эти данные от GPS-модуля на микроконтроллер STM32 и преобразовывать их в удобный для программы вид.
https://habr.com/ru/articles/936028/
Алгоритмы и Структуры данных
4 IT-курса для новичков — бесплатно и с гарантией практики
Получите комплексные знания с нуля и создайте реальные проекты на Python и Java, научитесь тестировать и работать с SQL и Excel — всё для удалённой работы и высокого дохода.
Те, кто владеет этим набором востребованных IT-навыков, получают доступ к лучшим проектам и зарплатам.
Стоимость курса — 24 990 ₽, но сейчас обучение доступно бесплатно, только по нашей ссылке.
Expression Templates
В этой статье я хочу рассказать о технике «Expression Templates» и её применении в библиотеке simstr (статья). Вкратце — это техника организации вычисления выражений оптимальным способом без временных промежуточных результатов путем построения из выражения посредством шаблонных перегрузок операторов одного объекта «вычислителя», тип которого выводится из операций в выражении, и который потом вычисляет результат.
Немного непонятно, не правда ли? Давайте попробуем разобраться.
https://habr.com/ru/articles/936468/
Алгоритмы и Структуры данных
Расширение известного трюка с XOR на миллиарды строк: введение в обратимые фильтры Блума
Можно ли применить известный трюк с операцией XOR, используемый для поиска в списках одного или двух пропущенных чисел, сделав так, чтобы он подошёл бы для поиска тысяч отсутствующих идентификаторов в таблицах, содержащих миллионы строк?
https://habr.com/ru/companies/wunderfund/articles/936354/
Алгоритмы и Структуры данных
🎬 Хотите увидеть кино изнутри — и смонтировать свой первый ролик за 5 дней?
Представьте: у вас в руках — кадры, музыка, эмоции.
А через пару дней это превращается в цельный, цепляющий фильм.
И вы — тот, кто сделал магию.
📌 На бесплатном мини-курсе вы:
— Разберётесь, чем реально занимается режиссёр монтажа
— Освоите приёмы, которые используют в Голливуде
— Смонтируете свои первые видео (для блога, работы или просто души)
— Получите подарки: 5 чек-листов, гайд по профессии и доступ к конференции по нейросетям
Стартовая зарплата начинающих монтажёров — от 80 000 ₽.
Работаете из студии, дома или на фрилансе — выбираете сами.
Пройдите тест, получите бонусы и начните путь в кино прямо сейчас:
👉 [Начать бесплатно]
Binary Heap на примере PriorityQueue в JAVA
Двоичная куча (binary heap) — это структура данных, которая представляет собой бинарное дерево, удовлетворяющее определённым условиям:
Должна быть полным двоичным деревом:
у каждого узла должно быть не более 2 дочерних элементов
уровни заполняются слева направо
https://habr.com/ru/articles/936238/
Алгоритмы и Структуры данных
Часть 3. Аппаратная часть: от микросхемы до дисплея
Идея собрать инерциальный навигатор пришла в голову быстро, но подобрать подходящие компоненты было сложнее. Главный микроконтроллер должен иметь достаточную вычислительную мощность для интегрирования уравнений движения и работы пользовательского интерфейса, при этом потреблять минимум энергии. Я выбрал контроллер семейства STM32 от STMicroelectronics, основанный на ядре ARM Cortex‑M. Этот чип обладает богатым набором периферии (I²C, SPI, UART, SDIO) и аппаратным блоком плавающей точки. К тому же компания ST поставляет готовые программные библиотеки для работы с MEMS‑датчиками.
https://habr.com/ru/articles/936346/
Алгоритмы и Структуры данных
Binary Heap на примере PriorityQueue в JAVA
Двоичная куча (binary heap) — это структура данных, которая представляет собой бинарное дерево, удовлетворяющее определённым условиям:
https://habr.com/ru/articles/936238/
Алгоритмы и Структуры данных
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
