Всё про Алгоритмы и Структуры данных – Telegram
Всё про Алгоритмы и Структуры данных
7.93K subscribers
328 photos
36 videos
5 files
2.8K links
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.

Ссылка: @Portal_v_IT

Сотрудничество, авторские права: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/structuredata
Download Telegram
Мой босс — робот. Все, что нужно знать о найме “цифровых работников”

Долгое время я, Сергей Бобрецов, руковожу развитием и разработкой платформой ТУРБО Х (направление бизнеса “Консист Бизнес Групп”), позволяющей автоматизировать многие процессы. Но в этом тексте я хочу поразмышлять о другом - о недавно возникшем феномене “цифровых сотрудников”. Они могут иметь навыки, отличающиеся от наших, и быть «натренированы» для выполнения различных задач. Цифровых сотрудников можно “вырастить” самим, а можно нанять в аутсорсинг. Об особенностях их найма, оценки эффективности и причинах возникновения, рассказываю ниже.

https://habr.com/ru/companies/lanit/articles/646419/

Алгоритмы и Структуры данных
Как мы ищем рестораны на карте: геоиндекс в Яндекс Еде

Любому пользователю сервиса доставки еды важно быстро получать актуальную информацию о доступных ресторанах и стоимости доставки. От нас же простая задача определить, из каких ресторанов возможно оформить заказ для пользователя с учётом сложных и постоянно изменяющихся зон доставки, требует не только высокой скорости обработки запроса, но и оперативного обновления данных, а также экономии вычислительных ресурсов.

Привет! Меня зовут Серёжа Синягин, я старший разработчик в Яндекс Еде и пишу на C++. В этой статье расскажу о задаче, с которой столкнулся в работе: как мы определяем, какие рестораны доступны пользователю для заказа. По пути заглянем во внутреннюю кухню, обсудим библиотеку H3 от Uber и разберём, как устроены R‑деревья и как мы используем их у себя.

https://habr.com/ru/companies/yandex/articles/945004/

Алгоритмы и Структуры данных
1
Криптографические губки

Структура криптографических алгоритмов, названная ее авторами «губкой» (sponge), была предложена в 2007 году. Название не случайно – у предложенных алгоритмов действительно есть сходство с обычной губкой, состоящее в том, что алгоритмы данной структуры выполняют преобразования в два основных этапа:

https://habr.com/ru/companies/aktiv-company/articles/944914/

Алгоритмы и Структуры данных
Big O

Нотация Big O («О» большое) — это способ описания производительности функции без измерения времени ее выполнения. Вместо того, чтобы засекать, сколько секунд выполняется функция от начала до конца, Big O показывает, как меняется время ее выполнения по мере увеличения размера входных данных. Этот подход помогает понять, как программа будет вести себя при разных объемах входящей информации.

В этой статье я разберу четыре наиболее часто встречающиеся категории нотации Big O: константную, логарифмическую, линейную и квадратичную. Не переживайте, если эти термины пока ничего вам не говорят — мы подробно рассмотрим каждый из них и наглядно визуализируем в процессе.

https://habr.com/ru/companies/timeweb/articles/942956/

Алгоритмы и Структуры данных
Алгоритм Дейкстры. Разбор Задач

Поиск оптимального пути в графе. Такая задача встречается довольно часто и в повседневной жизни, и в мире технологий. Справиться с такими вызовами помогает подход, который должен быть в арсенале каждого программиста — алгоритм Дейкстры.

Если вы хотите найти ответить на вопросы, чем этот алгоритм лучше BFS (поиска в ширину), при каких условиях алгоритм применим, и какие теоретические и практические задачи можно с его помощью решать, читайте далее.

https://habr.com/ru/companies/otus/articles/599621/

Алгоритмы и Структуры данных
Решаем Wordle с 3,64 попыток в 99,4% случаев

Недавно я играл в головоломку Wordle, параллельно думая, как бы её могла решать программа.

[Прим. пер.: Wordle — игра в отгадывание слов, напоминающая «быки и коровы». Правила достаточно ясны по скриншоту выше.]

Первым делом я извлёк списки слов с сайта Wordle. Любопытно, что существует «целевой» список из 2315 слов, которые могут быть ответами, но и дополнительный список из 10657 возможных догадок — вариантов, которые могут вводить пользователи, но которые никогда не будут ответом. Если вам нужны эти списки, то в репозитории ниже есть пара set в формате Python.

https://habr.com/ru/articles/647391/

Алгоритмы и Структуры данных
6+ главных алгоритмов балансировки нагрузки

Балансировка нагрузки – процесс распределения входящих запросов между доступными серверами. Популярные подходы к балансировке по-разному решают проблему перегрузки системы. В этой статье мы рассмотрим принципы работы, преимущества, недостатки и оптимальные сценарии использования самых известных алгоритмов.

https://proglib.io/p/6-glavnyh-algoritmov-balansirovki-nagruzki-2024-08-06

Алгоритмы и Структуры данных
Создание интерактивного макета. Задача упаковки кругов в круг. Метод отжига

Я начала разработку интерактивного интерфейса для своего проекта «Florist». Центральным элементом сайта должен был стать интерактивный макет — с его помощью пользователь мог бы визуализировать различные цветочные дизайны, располагая в ячейках макета цветы из каталога. Я создала прототип, внедрила его в сайт и доработала окончательный дизайн до такой картинки:

https://habr.com/ru/articles/945846/

Алгоритмы и Структуры данных
Алгоритмы в повседневной жизни

Алгоритмы – это просто пошаговые инструкции для решения задачи. И если вы когда-либо собирали шкаф из IKEA, вы уже применяли алгоритм. Только без багов (надеюсь).

В этой статье не будет заумных сортировок массивов или хэш-таблиц в терминах C++. Вместо этого – про эффективное использование пространства и экономию времени в привычных вещах: поиска одежды, уборки квартиры и планирования дня.

https://habr.com/ru/articles/945994/

Алгоритмы и Структуры данных
Создавая непредсказуемость. Примеры использования генераторов случайных чисел

Генераторы случайных чисел (ГСЧ) – важнейшая составляющая разнообразных процессов, связанных с компьютерными программами, таких как криптография, моделирование, машинное обучение, игры, программирование, азартные игры, научные исследования – список можно продолжать. Но может возникнуть вопрос: как именно получить по-настоящему случайное значение, и почему это важно?

Оказывается, спонтанность — не самая сильная сторона компьютеров. Они
могут выполнять только те действия, на которые запрограммированы. Благодаря
ГСЧ, компьютеры приобретают способность генерировать уникальные неравномерно
распределенные числа. Иными словами, ГСЧ помогает компьютеру моделировать
непредсказуемость.

https://habr.com/ru/companies/piter/articles/646399/

Алгоритмы и Структуры данных
Осваиваем LLM: подробное знакомство с книгой Себастьяна Рашки «Создание LLM с нуля»

Недавно у меня появилась возможность прочитать книгу Себастьяна Рашки «Создание LLM с нуля», и, начав читать, я просто не мог её отложить.

Эта книга увлекательно сочетает исчерпывающую теорию, практическую реализацию кода и прекрасно и доходчиво объясняет одну из самых актуальных тем в области современного искусственного интеллекта: большие языковые модели (LLM). Как человек, который любит разбираться в тонкостях моделей ИИ, я считаю эту книгу настоящей жемчужиной. Ее обязательно нужно прочитать всем, кто серьезно интересуется LLM. Хочу отметить, что я никак не связан с автором или издателем; эта рецензия является исключительно отражением моего восхищения содержанием книги.

https://habr.com/ru/companies/piter/articles/946344/

Алгоритмы и Структуры данных
👍2
Инварианты: проектирование эффективных алгоритмов

Инварианты – мощный инструмент для анализа, оптимизации и доказательства корректности алгоритмов. Покажем, как можно их использовать для разработки максимально эффективных решений сложных задач.

https://proglib.io/p/invarianty-proektirovanie-effektivnyh-algoritmov-2024-07-15

Алгоритмы и Структуры данных
Жадные алгоритмы: все, что нужно знать для собеседования

Жадные алгоритмы позволяют эффективно решать определенный спектр оптимизационных задач. Однако их применение требует тщательного анализа задачи и структуры обрабатываемых данных, так как жадный подход не всегда гарантирует оптимальное решение. В этой статье мы рассмотрим основные принципы работы жадных алгоритмов, их преимущества и недостатки, а также разберем несколько практических примеров их применения.

https://proglib.io/p/zhadnye-algoritmy-vse-chto-nuzhno-znat-dlya-sobesedovaniya-2024-07-08

Алгоритмы и Структуры данных
Градиенты в нейронных сетях для поиска аномалий в данных

В основе машинного обучения лежит предположение, что данные для обучения, тестирования и применения взяты из одного и того же распределения. К сожалению, в процессе применения модели это предположение может нарушаться, что приводит к необъяснимым последствиям — сдвигу распределения. Особенно такие нарушения опасны в областях, где требуется быстро и точно принимать решения: медицина, финансы, self-driving cars.

Системы машинного обучения часто просто игнорируют сдвиги распределения и продолжают работать в штатном режиме, не представляя, что ответы на запросы могут быть невалидными. Чтобы сделать работу системы более точной и понять причину происхождения некорректных данных, можно отлавливать такие нарушения — нужно только добавить возможность поиска аномалий.

https://habr.com/ru/companies/hsespb/articles/646219/

Алгоритмы и Структуры данных
Оптимизация генплана. Какая математика под капотом?

При любых строительных работах генеральный план является обязательной частью проекта. Готовый генплан предоставляет подробную информацию об объемах работ, объектах строительства, транспортных сообщениях и инженерных коммуникациях разного назначения.

Именно от точности и качества генерального плана зависит безопасность и надежность всего проекта, его функциональность, а их оптимальное проектирование позволяет снизить финансовые и временные затраты уже на самом старте реализации проекта. Очевидно, что при решении подобной задачи хочется максимально автоматизировать оптимальное проектирование генеральных планов и застраховаться от любых ошибок, связанных с человеческим фактором.

https://habr.com/ru/companies/numdes/articles/599971/

Алгоритмы и Структуры данных
Не одним CRDT едины или P2P vs Authoritative в local-first приложениях

Сегодня поговорим про реализации решения конфликтов в local / offline-first – это когда ваше приложение позволяет пользователям работать полностью или частично оффлайн, а когда они выходят в сеть, синхронизировать все их изменения.

Примеры таких приложений: Notion-like редакторы, Figma-like вайтборды или Linear-like таск менеджеры.

Основная идея – коллаборация, а коллаборация несет за собой конфликты, разберем очень наглядный пример:

https://habr.com/ru/articles/946722/

Алгоритмы и Структуры данных
Мой опыт собеседования в Amazon
Это
история о моем опыте собеседования в Амазоне, почему мне в целом не понравилось по сравнению с другими FAANG. Так же тут будут ответы на “а что конкретно спрашивали на интервью, какие были задачки, что на систем дизайне было”, потому что мне не дали подписать NDA, все с пруфами, скринами и прочее.

https://habr.com/ru/articles/646319/

Алгоритмы и Структуры данных
Запуск Computer Science Space

Приветствуем любителей компьютерных наук! Хотим рассказать про новую инициативу: 1 марта в Санкт-Петербурге запустился Computer Science Space — открытый научно-технологический клуб для всех заинтересованных в современных и классических областях CS.

https://habr.com/ru/articles/946844/

Алгоритмы и Структуры данных
Прокачиваем RAG: тестируем техники и считаем их эффективность. Часть 1

При проектировании RAG-системы инженер каждый раз сталкивается с множеством вопросов: как получать чанки, какую векторную базу использовать, как организовать получение релевантной информации из базы, да даже выбор эмбеддера может занять приличное время — и это лишь вершина айсберга. Идеальным решением является перебор основных вариантов, затем оценка качества и выбор подходящих для конкретной задачи. Ведь то, что хорошо работает, например, для техподдержки, может провалиться в юридическом анализе, и наоборот.

К счастью, на GitHub есть прекрасный репозиторий, где автор собрал популярные RAG-техники с кодом и объяснениями. Репозиторий доступен по ссылке. Обязательно зайдите и поддержите автора.

https://habr.com/ru/articles/946888/

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