Привет! Меня зовут Влад Божьев, я старший разработчик юнита АБ-тестирования Авито. В нашей команде мы ежедневно работаем с по-настоящему большими объёмами данных – это не просто фигура речи, это наша реальность. Мы помогаем создавать метрики, которые помогают бизнесу не «гадать на кофейной гуще», а принимать взвешенные решения, основанные на данных.
Рубрика «data structures»
Как мы храним 20000+ метрик и миллиарды комбинаций разрезов в одной таблице
2025-05-29 в 9:12, admin, рубрики: BigData, clickhouse, data analysis, data engineering, data structures, M42, python, storageJavaScript: структуры данных и алгоритмы. Часть 11
2025-05-06 в 10:05, admin, рубрики: algorithms, data structures, javascript, machine learning, statistics, timeweb_статьи, Алгоритмы, машинное обучение, статистика, структуры данных
Привет, друзья!
В этой серии статей мы разбираем структуры данных и алгоритмы, представленные в этом замечательном репозитории. Это одиннадцатая часть серии.
Сегодня мы рассмотрим несколько простых, но интересных алгоритмов машинного обучения, а также один весьма любопытный статистический алгоритм.
Код, представленный в этой и других статьях серии, можно найти в этом репозитории.
Интересно? Тогда прошу под кат.
Collections в Python: 10 практичных структур
2024-12-19 в 10:10, admin, рубрики: collections, data structures, python, python3
Стандартные типы данных Python вроде списков и словарей справляются с большинством задач. Но что делать, если нужно чуть больше гибкости? Например, подсчитать частоту слов, создать словарь, который сам знает, что делать с отсутствующими ключами, или реализовать очередь?
Модуль collectionsЧитать полностью »
Фильтр Блума
2024-04-10 в 8:01, admin, рубрики: algorithms, bloom filter, data structures, javascript, timeweb_статьи_перевод, Алгоритмы, структуры данных, фильтр блума
У каждого разработчика есть набор инструментов для решения различных задач. Однако со временем возникает необходимость расширять этот набор, чтобы эффективно справляться с более сложными задачами. В этой статье я хочу познакомить вас с инструментом, которым вы, скорее всего, раньше не пользовались. И хотя он подходит для решения узкого спектра задач, его использование может оказаться весьма полезным. Знакомьтесь — "фильтр Блума" (Bloom filter).
Выбор структур данных для самописного текстового редактора
2023-06-26 в 13:00, admin, рубрики: c++, data structures, ruvds_перевод, vscode, Алгоритмы, Блог компании RUVDS.com, красно-черные деревья, Программирование, структуры данных, текстовые редакторы, хранение данных
Программирование текстовых редакторов может быть очень интересной и сложной задачей. Типы задач, которые должны решать текстовые редакторы, варьируются от тривиальных до невероятно трудных. Недавно я занимался переработкой внутренних структур данных редактора, над которым я работаю. В частности, самой фундаментальной для любого текстового редактора структуры данных: текста.
Ресурсы
Прежде чем мы приступим к разбору того, что я сделал, важно упомянуть очень полезные ресурсы для создания собственного текстового редактора:
- Build Your Own Text Editor — наверно, самый фундаментальный пост о создании текстового редактора с нуля, который я видел. Это превосходный туториал на случай, если вы хотите начать писать собственный текстовый редактор. Стоит заметить, что в редакторе из этого туториала в качестве внутренней структуры для текста используется, по сути, вектор строк.
- Text Editor: Data Structures — отличный обзор множества структур данных, которые можно использовать при реализации текстового редактора. (Спойлер: как минимум одна из них будет рассмотрена в моём посте)
- Плейлист Ded (Text Editor) на YouTube — это потрясающая серия, в которой @tscoding фиксирует процесс создания с нуля текстового редактора. Эти видео стали для меня источником вдохновения.
Зачем?
Если в сети есть так много хороших ресурсов о создании собственного текстового редактора (не говоря уже о том, что уже существует множество феноменальных текстовых редакторов), то зачем я это пишу? На то есть несколько причин:
- Я хотел заняться проектом, непохожим ни на один свой прошлый.
- Я хотел создать инструмент, которым смогу пользоваться.
- Мне всегда хотелось глубже разобраться с созданием собственных структур данных.
Очистка данных, как игра «Камень, Ножницы, Бумага». Это игра с финишем или без? Часть 2. Практическая
2020-02-21 в 15:43, admin, рубрики: big data, data accuracy, data analysis, data anomaly, data cleansing, data completeness, data consistency, data engineering, data mining, data preparation, data quality, data structures, dirty data, Алгоритмы, грязные данные, обработка данных, открытые данные, очистка данныхВ части первой описывалось, что данная публикация сделана на основе датасета результатов кадастровой оценки объектов недвижимости в Ханты-Мансийском АО.
Практическая часть представлена в виде шагов. Проводилась вся очистка в Excel, так как самый распространенный инструмент и описанные операции может повторить большинство специалистов знающих Excel. И достаточно неплохо подходит для работы в «рукопашную».
Нулевым этапом поставлю работы по запуску, сохранению файла, так как он размером 100 мб, то при количестве этих операций десятки и сотни на них уходит существенное время.
Открытие, в среднем, — 30 сек.
Сохранение – 22 сек.
Первый этап начинается с определения статистических показателей датасета.
Таблица 1. Статпоказатели датасета

Читать полностью »
Ускоряем распределенную обработку больших графов с помощью вероятностных структур данных и не только
2019-08-26 в 13:36, admin, рубрики: algorithms, Apache Spark, big data, data mining, data structures, graphs, Алгоритмы, Блог компании Одноклассники, машинное обучение
Одним из самых ценных ресурсов любой социальной сети является "граф дружб" — именно по связям в этом графе распространяется информация, к пользователям поступает интересный контент, а к авторам контента конструктивный фидбэк. При этом граф является еще и важным источником информации, позволяющим лучше понять пользователя и непрерывно совершенствовать сервис. Однако в тех случаях когда граф разрастается, технически извлекать из него информацию становится все сложнее и сложнее. В данной статье мы поговорим о некоторых трюках, используемых для обработки больших графов в OK.ru.
Структуры данных с примерами на языке Swift. Часть первая: связаный список
2019-07-31 в 17:03, admin, рубрики: data structures, swift, разработка под iOSПредисловие
Кто из iOS разработчиков не мечтал о работе в престижном месте вроде Yandex или Avito. К сожалению, про мечты на собеседованиях спрашивает только hr, а вот интервьюеры из числа разработчиков задают вопросы немного другого характера. Чем отличается reference type от value type или bounds от frame? Вопросы, который каждый из нас слышал не раз на собеседованиях. Если ваше интервью начинается с вопроса про отличия значимого и ссылочного типов или в духе “расскажите ка нам про SOLID”, то вы явно на пути трудоустройства в ООО “Так себе перспективы“.Читать полностью »
Хэш таблицы в Go. Детали реализации
2019-06-26 в 11:10, admin, рубрики: data structures, Go, go internals, golang, map, Программирование
Порассуждаем об имплементации map в языке без дженериков, рассмотрим что такое хэш таблица, как она устроена в Go, какие есть плюсы и минусы данной реализации и на что стоит обратить внимание при использовании данной структуры.
Детали под катом.
Читать полностью »
Merkle Tree: ржавое и быстрое
2019-06-14 в 6:19, admin, рубрики: blockchain, data structures, merkle tree, performance optimization, Rust, software engineering, Алгоритмы, высокая производительность, Программирование
Всем привет! Недавно открыл для себя язык Rust. О своих первых впечатлениях поделился в предыдущей статье. Теперь решил копнуть немного глубже, для этого необходимо что-то посерьёзнее списка. Выбор мой пал на дерево Меркла. В этой статье я хочу:
- рассказать про эту структуру данных
- посмотреть на то, что уже есть в Rust
- предложить свою реализацию
- сравнить производительность
