ru
Feedback
Всё про Алгоритмы и Структуры данных

Всё про Алгоритмы и Структуры данных

Открыть в Telegram

Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество, авторские права: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/structuredata

Больше
7 766
Подписчики
-224 часа
-77 дней
-4530 день
Архив постов
Конвейеры формирования изображений. Часть 2: Баланс белого и преобразование к стандартному наблюдателю С вами снова Егор Ершов, руководитель группы «Цветовая вычислительная фотография» в AIRI и заведующий сектором репродукции и синтеза цвета ИППИ РАН. Я продолжаю свой цикл статей по мотивам лекций по вычислительной фотографии, и в прошлый раз мы приступили к разбору типичных конвейеров формирования изображения, заложенных в наши профессиональные камеры и мобильные телефоны. Типичный пайплайн — от нажатия кнопки затвора до сохранения файла — довольно внушителен по количеству шагов, грубо его можно разделить на подготовку сырого RAW‑изображения и последующую обработку программными средствами. В предыдущей статье мы успели рассмотреть лишь первые два шага — регистрация света и дебайеринг, на этот раз поговорим про баланс белого и переход в пространство стандартного наблюдателя. https://habr.com/ru/companies/airi/articles/1032886/ Алгоритмы и Структуры данных

Модуль collections в Python: ваш чит-код для решения алгоритмических задач Если вы хоть раз пытались вкатиться в алгоритмы, решали задачки на LeetCode или готовились к собеседованиям, то наверняка ловили в лицо обидную ошибку Time Limit Exceeded (TLE). Вроде бы логика решения идеальная, на базовых тестах всё работает, но при отправке код отваливается по времени. Самая классическая причина такой боли у новичков — банальное list.pop(0). Когда вы пишете эту строчку, чтобы достать первый элемент из очереди, Python не просто забирает значение. Обычный список под капотом — это динамический массив. Удалив первый элемент, язык вынужден сдвинуть все оставшиеся элементы на одну позицию влево. Если в списке миллион элементов, это миллион операций ради одного удаления. Итог: скрытая сложность  там, где вы ожидали быстрый ответ, и проваленный тест. https://habr.com/ru/articles/1032834/ Алгоритмы и Структуры данных

Почему нейросети — это тупик? Новый взгляд на архитектуру искусственного интеллекта Мы живём во времена высоких технологий, ну, по крайней мере, мы так считаем. Но проблема в том, что эти технологии для большинства это так называемые «черные ящики». Спроси у друга, знает ли он, как устроена микроволновка? Скорее всего нет. И это проблема. Но сейчас не о микроволновках, я хочу сфокусировать ваше внимание на искусственном интеллекте. Я бы назвал это вершиной всех «чёрных ящиков», потому что его влияние в современном мире колоссально. К сожалению, авторы выпустили в мир монстра и до сих пор не поняли, насколько он опасен. Мы разберём механику работы ИИ (а точнее проблемы) и начнём выстраивать новый тип модели искуственного интеллекта с помощью выведенных мной систем: ОСНиУ (онтология согласовательной направленности и удержания) и РОА (рефлексивная онтологическая архитектура, второй порядок). Давайте углубимся в суть. Я не буду кидать вам сразу тонны текста своих работ, просто кратко изложу основы, если это вызовет отклик, я начну писать больше статей по этой теме, раскрывая глубину проработки. https://habr.com/ru/articles/1032820/ Алгоритмы и Структуры данных

Невидимый враг многопоточности: False Sharing и кэш-линии процессора Представьте типичную ситуацию: вы оптимизируете высоконагруженный бэкенд или сетевой сервис. И абсолютно неважно, на чем вы пишете — C++, Java, Go или C#. У вас есть несколько потоков, и вы решаете избавиться от медленных блокировок. Ведь мьютексы — это узкое горлышко, верно? Вы применяете классический паттерн: вместо того чтобы потоки толкались локтями вокруг одной переменной, вы даете каждому потоку (или горутине) свой собственный, независимый счетчик. Нет общих данных — нет конфликтов. Вы запускаете нагрузочные тесты, ожидая увидеть красивое линейное ускорение, но профилировщик показывает странное. Потоки словно продолжают стоять в очереди, а код на многоядерной машине начинает работать едва ли не медленнее, чем на одном ядре. https://habr.com/ru/articles/1032804/ Алгоритмы и Структуры данных

Можно ли вычислить секретный ключ HMAC, если научиться инвертировать хеш-функции? Приветствую, Хабр! В анализе криптографических алгоритмов достаточно часто используется понятие оракула. Оракул – это некоторая гипотетическая вычислительная сущность, которая может мгновенно выполнять конкретные требуемые криптоаналитику операции. Например, выдавать истинно случайные числа (случайный оракул), или зашифровывать/расшифровывать данные на некотором априори известном оракулу ключе шифрования (соответственно, оракул зашифрования/расшифрования). Предлагаю в этой статье пойти дальше и рассмотреть оракул, способный найти прообраз (точнее, совокупность возможных прообразов) заданного хеш-кода конкретной хеш-функции. Поскольку хеш-функции часто используются в более сложных конструкциях, предлагаем посмотреть и порассуждать, как наличие такого оракула влияет на свойства вышележащих криптографических механизмов. В качестве их примера рассмотрим конструкции HMAC (Hash-based Message Authentication Codes – коды аутентификации сообщений на основе хеширования). https://habr.com/ru/companies/aktiv-company/articles/1031788/ Алгоритмы и Структуры данных

Bug fingerprinting для UI: почему stack trace не работает и что вместо TL;DR: Sentry дедуплицирует backend‑ошибки по хешу (error class + top stack frame + module). Для UI‑багов этот рецепт ломается — у expect(button).toBeVisible() нет stack frame в продуктовом смысле, есть локатор + assertion + URL. В webtest‑orch я собрал composite SHA-256 fingerprint из (normalized_selector | assertion type | error class | URL template | message[:80]) с тремя rules нормализации (:nth-child, UUID, /users/123 → /users/:id). Это даёт стабильный 8-hex BUG-id который выживает прогоны и даёт diff new / regression / persisting / fixed без БД и embedding«ов.» https://habr.com/ru/articles/1032230/ Алгоритмы и Структуры данных

«Алгоритмы на языке Go». Книга, которую ждали Сегодня познакомим вас с самой долгожданной новинкой апреля — книгой «Алгоритмы на языке Go», которую мы успели выпустить в продажу 30 числа. Автор книги — Артём Михайлов, пишущий на Хабре под ником Morettom @morett1m, Go- и Rust-разработчик, также ведущий телеграм-канал  t.me/coreartem. Внимательные читатели не будут удивлены увидеть эту книгу, поскольку мы систематически наполняем наш ассортимент качественными книгами по алгоритмам для очень разной целевой аудитории. Наиболее фундаментальный труд в этой области, который мы переиздаём и допечатываем на протяжении многих лет — это «Алгоритмы» Стивена Скиены (сейчас актуально 3-е издание). Важнейшие книги по алгоритмам для начинающих, которые мы выпустили в последние годы – это «Алгоритмический тренинг. Решение практических задач на Python и C++» Максима Иванова и «Базовые алгоритмы. Реализация на Python и C++ на примере классических игр»  Павла Довгалюка. https://habr.com/ru/companies/bhv_publishing/articles/1032182/ Алгоритмы и Структуры данных

Обратное распространение ошибки: от интуиции до кода Современные нейросети часто воспринимаются как черная магия. Вы закидываете в черный ящик датасет, ждете пару часов, и вот уже модель пишет за вас код, генерирует картины и безошибочно отличает собаку от выпечки. Но под капотом нет никаких заклинаний. Вся эта вычислительная мощь держится на одном элегантном алгоритме, основы которого были заложены еще в 1970-х годах — обратном распространении ошибки (Backpropagation). Сейчас порог входа в машинное обучение низок как никогда. Чтобы заставить сеть учиться, достаточно написать loss.backward() в PyTorch или вызвать model.fit() в Keras. Фреймворки берут всю математическую рутину на себя. Это чертовски удобно, но порождает проблему: мы получаем разработчиков, которые умеют собирать архитектуры из готовых блоков-лего, но впадают в ступор, если спросить их, что именно происходит при вызове backward(). Как сеть понимает, какой конкретно вес в десятом слое виноват в том, что на выходе получилась ерунда? В этой статье мы снимем покров тайны. Мы разберем backprop на пальцах и понятных аналогиях, сдуем пыль со школьного учебника алгебры (не пугайтесь, нам понадобится только база) и напишем этот алгоритм с полного нуля на чистом Python. https://habr.com/ru/articles/1031986/ Алгоритмы и Структуры данных

Самый недооценённый навык в 2026 году – это вайбкодинг Еще недавно про него толком никто не знал, а сейчас нейронки уже собир
Самый недооценённый навык в 2026 году – это вайбкодинг Еще недавно про него толком никто не знал, а сейчас нейронки уже собирают проекты от идеи до релиза и экономят десятки часов работы. И те, кто сейчас разберутся во всём этом, будут зарабатывать в разы больше тех, кто делает всё вручную. А чтобы научиться вайбкодить и не совершать ошибки - читайте канал AI-архитектор. Автор уже открыл доступ к бесплатному уроку, где разобрал: что такое вайбкодинг, какие связки реально приносят от 100 000 ₽ за проект и почему 2026 год — последнее окно лёгкого входа в нишу. Через 24 часа урок станет платным, поэтому подписывайтесь и забирайте доступ в закрепе: https://t.me/+enCc1EQHRGVmMGZi

Муравьи против трансформеров: старый алгоритм 1992 года, который вернулся Начну с признания: истории формата «природа оптимизирует лучше людей» меня обычно раздражают, слишком уж часто это все притянуто за уши. Но с муравьями история действительно странная, и мне ее захотелось проверить. Короткая справка по нашему герою. Аргентинский муравей Linepithema humile в миллиметр длиной, с глазами у него все плохо, а в мозге около 250 000 нейронов (у нас, напомню, 86 млрд). Карты местности он не помнит.  В 1989 году четверо бельгийских биологов поставили этим муравьям простой эксперимент — гнездо, еда, два мостика, где один длиннее другого в два раза. Через несколько минут вся колония сошлась на короткой ветке в 100% прогонов. И все это без координатора, без плана и без голосования.  Через три года этот эксперимент превратится в Ant Colony Optimization — алгоритм, который я сегодня натравлю на классический TSP-бенч и получу 0,10% отставания от оптимума. А в 2023, через 34 года после наблюдений в Брюсселе, тот же алгоритм вернулся на NeurIPS в качестве бэкбона для графовых нейросетей. Что же, приступим. https://habr.com/ru/companies/selectel/articles/1031574/ Алгоритмы и Структуры данных

Как подготовиться к алгоритмическим соревнованиям: опыт финалиста ICPC Всем привет! Меня зовут Андрей, я финалист ICPC (Международной студенческой олимпиады по программированию), разработчик Техплатформы Городских сервисов Яндекса. Эта статья — концентрат неочевидных (а порой и контринтуитивных) советов по подготовке к соревнованиям. Годами я тренировался, набивал шишки на контестах и набирался мудрости у топовых тренеров, чтобы собрать этот опыт в одном месте. Олимпиадное программирование — это настоящий спорт, где важно грамотно выстроить процесс тренировок и научиться применять свои навыки в условиях ограниченного времени. За годы участия в самых разных конкурсах и турнирах я понял, что успех складывается не из зубрёжки сложных алгоритмов, а из ежедневной практики, работы над ошибками и правильного баланса между теорией и практикой. В статье я расскажу о своём опыте подготовки к различным чемпионатам по алгоритмам и поделюсь лайфхаками, как подготовиться к любому серьёзному челленджу. https://habr.com/ru/companies/yandex/articles/1029668/ Алгоритмы и Структуры данных

Как подготовиться к алгоритмическим соревнованиям: опыт финалиста ICPC Всем привет! Меня зовут Андрей, я финалист ICPC (Международной студенческой олимпиады по программированию), разработчик Техплатформы Городских сервисов Яндекса. Эта статья — концентрат неочевидных (а порой и контринтуитивных) советов по подготовке к соревнованиям. Годами я тренировался, набивал шишки на контестах и набирался мудрости у топовых тренеров, чтобы собрать этот опыт в одном месте. Олимпиадное программирование — это настоящий спорт, где важно грамотно выстроить процесс тренировок и научиться применять свои навыки в условиях ограниченного времени. За годы участия в самых разных конкурсах и турнирах я понял, что успех складывается не из зубрёжки сложных алгоритмов, а из ежедневной практики, работы над ошибками и правильного баланса между теорией и практикой. В статье я расскажу о своём опыте подготовки к различным чемпионатам по алгоритмам и поделюсь лайфхаками, как подготовиться к любому серьёзному челленджу. https://habr.com/ru/companies/yandex/articles/1029668/ Алгоритмы и Структуры данных

ИИ меняет подход к аналитике бизнеса 3 июня Visiology проведёт бесплатный онлайн-эфир о том, как AI помогает быстрее работать с данными, сокращать ручную отчётность и получать ответы без долгой подготовки дашбордов. Это революция в управлении аналитикой. Разберём, как корпоративный BI меняется после Power BI: self-service аналитика, AI-ассистенты, автоматизация отчётов, контроль метрик и сценарии для бизнеса, IT и аналитиков. Будет полезно:аналитикам, которые хотят быстрее собирать отчёты и находить инсайты; — IT-командам, которые отвечают за BI-инфраструктуру и безопасность данных; — руководителям, которым нужны понятные метрики и быстрые управленческие решения. Участие бесплатное. Количество мест ограничено. Успейте зарегистрироваться. Узнать больше #реклама 16+ ai.visiology.com О рекламодателе

Nonce Observatory: В криптографии есть странный класс ошибок: внешне всё выглядит правильно, подписи проходят проверку, публичный ключ корректен, транзакции валидны, протокол не нарушен — но где-то внутри генератор nonce начал вести себя не как случайный источник, а как механизм с памятью, смещением, повтором, коротким диапазоном или скрытой структурой. Именно nonce — одно из самых хрупких мест ECDSA и Schnorr-подписей. Не потому, что сами протоколы “плохие”, а потому, что они требуют дисциплины: каждый nonce должен быть секретным, уникальным и достаточно случайным. Если nonce повторился, частично утёк, оказался слишком коротким или начал следовать закономерности, приватный ключ может стать вычислимым. https://habr.com/ru/articles/1031858/ Алгоритмы и Структуры данных

Свой маленький GIS: приложение для мультиспектральных и гиперспектральных снимков Привет, Хабр. Меня зовут Алексей, я C#-разработчик. В этой статье хочу рассказать о своём проекте очень запавшем мне в душу, который я делал на тему обработки изображений, GIS и дистанционного зондирования Земли. Сделан он несколько лет назад в рамках дипломной работы, но даже спустя годы мне интересна данная тема и она по-прежнему остаётся очень перспективной в различных отраслях. https://habr.com/ru/articles/1031848/ Алгоритмы и Структуры данных

Пока вы спите – ИИ-агент закрывает задачи за вас ChatGPT, Claude и DeepSeek уже стали базой. Но главный тренд 2026 года – авт
Пока вы спите ИИ-агент закрывает задачи за вас ChatGPT, Claude и DeepSeek уже стали базой. Но главный тренд 2026 года – автономные AI-агенты, которые не просто отвечают на запросы, а сами выполняют ваши рабочие задачи и рутину. На бесплатном практикуме команда Зерокодера покажет, как установить и настроить OpenClaw – локального AI-агента для работы и автоматизации задач. В эфире покажут: – как установить и настроить OpenClaw; – как автоматизировать рутину и сократить количество ручных действий; – как собрать мощнейшую рабочую связку Claude + OpenClaw + Cursor; – как встроить AI-агента в текущую работу и ускорить процессы; – как ускорить текущие процессы без найма дополнительных людей. Это не вебинар «с нуля в IT» – это практикум для тех, кто уже использует ИИ и хочет выйти на следующий уровень. 🎁 Бонус: гайд по установке и настройке OpenClaw на вашем ПК. Бесплатный практикум – по ссылке.

Размышления на тему задач стоящих перед ИТ‑специалистами и опрос Это статья написана дипломированным инженером‑конструктором (по первому образованию), разработчиком систем автоматизированного проектирования (САПР) и (по известным причинам) вынужденно ставшим сертифицированным специалистом по системам офисного документооборота. С развитием интернета и всеобщей массовой коммуникации сфера интересов разработчиков сместилась в область запросов потребителей развлекательного контента. И это весьма прискорбно. А тут ещё ИИ (Ai) подоспел, и все окончательно забыли о действительно полезных задачах автоматизации инженерного проектирования. Справедливости ради стоит отметить, что есть ещё задачи бизнеса, тоже весьма популярные в определённых кругах. А также математическое моделирование, инженерная графика, различные узкоспециализированные приложения. https://habr.com/ru/articles/1030336/ Алгоритмы и Структуры данных

Q-LLL: как мы сделали LLL-редукцию наблюдаемой, управляемой и проверяемой LLL-редукция давно стала одним из базовых инструментов вычислительной математики, теории чисел, криптографии и анализа решёток. Обычно LLL воспринимается как “чёрный ящик”: на вход подаётся целочисленный базис, внутри выполняется последовательная редукция, на выходе получается новый базис, который удовлетворяет классическим условиям LLL. Но в практических задачах всё чаще возникает другая постановка. Нам нужен не просто один запуск LLL, а управляемый процесс исследования целого семейства решёток: с разными масштабами, embedding-параметрами, весами, подвыборками строк и гипотезами о скрытой структуре. В такой ситуации важно не только редуцировать базис, но и понимать: https://habr.com/ru/articles/1031386/ Алгоритмы и Структуры данных

Multi-region quorum: «все регионы согласны» против «N из M» В моём uptime-мониторинге Valpero сейчас семь production-мониторов и десять probe-регионов. Когда я только начал, false-positive алёрты приходили часто — типичная история с single-region проверкой. Поставил quorum-логику. Тут оказалось, что вариантов quorum’а несколько, и они дают разное поведение в пограничных случаях. Ниже расскажу про два главных подхода — K-of-N (как в Pingdom, BetterStack) и all-must-agree (как у меня) — с реальным кодом, который у меня сейчас в проде. В конце разберу edge-кейсы которые ломают каждый из подходов, и почему я остановился на all-must-agree с consecutive-failure threshold. https://habr.com/ru/articles/1035600/ Алгоритмы и Структуры данных

Отечественный суперкартридж для старушки Mega Drive и его киллер-фичи На создание очередной статьи раз в восемь лет меня сподвигла данная публикация, где автор о сложном и хайповом рассказал настолько доступно и информативно, что я подумал, почему бы и нет, я тоже хочу написать о чем-то интересном! Ко мне в руки попал профессиональный флеш-картридж InviteDRIVE v6 MAX с поддержкой игр Sega Genesis / Mega Drive / Sega CD / Master System / 32x, разработанный широко известным в узких кругах ретрогеймеров Масяней из Новосибирска. Главной, но не уникальной особенностью картриджа является возможность играть во всю библиотеку Sega CD игр различных регионов на оригинальной 16-ти битной консоли фирмы Сега не имея самого дорогостоящего и капризного CD аддона. https://habr.com/ru/articles/1035910/ Алгоритмы и Структуры данных