Всё про Алгоритмы и Структуры данных
Kanalga Telegram’da o‘tish
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников. Ссылка: @Portal_v_IT Сотрудничество, авторские права: @oleginc, @tatiana_inc Канал на бирже: https://telega.in/c/structuredata
Ko'proq ko'rsatish7 761
Obunachilar
Ma'lumot yo'q24 soatlar
-57 kunlar
-3230 kunlar
Postlar arxiv
⚡️После блокировки YouTube, обучающие курсы и лекции взлетели в цене в 3 раза.
Выкладываем 7834 ГБ платных курсов, книг и лекций для программистов в Telegram, находите нужный канал и подписывайтесь.
🔥МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
🖥Python: t.me/pythonl
🖥C++ t.me/cpluspluc
🎮Хакинг: t.me/linuxkalii
🖥Java: t.me/javatg
🖥C#: t.me/csharp_ci
🖥 Javascript: t.me/javascriptv
🖥Базы данных: t.me/sqlhub
🔝 Data Science: t.me/data_analysis_ml
💼 Devops: t.me/DevOPSitsec
👣 Golang: t.me/Golang_google
🖥 Linux: t.me/linuxacademiya
🧠 ИИ: https://t.me/vistehno
📚 ИТ-книги: https://t.me/addlist/HwywK4fErd8wYzQy
OSDEV: Разработка аллокатора на С++ часть 2: Слияние блоков за константное время. Юнит тест для аллокатора
В первой части мы реализовали простейший аллокатор с минимальным оверхедом. Конечно же на самом деле все сложнее. Так реализация дефрагментации была наивной и не могла сливать блоки даже когда не было распределенных блоков после нескольких вызовов mem_free. Для того, что бы получить исходную картинку где будет только 2 служебных блока и один свободный нужно было бы вызвать mem_alloc с размером большим чем доступно памяти что бы искусственно запустить дефрагментацию. В этой части мы это исправим и напишем юнит тест для нашего аллокатора что бы убедится что он работает правильно.
https://habr.com/ru/articles/861930/
Алгоритмы и Структуры данных
Создаём простой копирующий сборщик мусора
Этот пост станет итерацией туториала и знакомством с реализацией сборки мусора, описанной в классической статье. Мы продолжим работать с простыми сборщиками мусора, но на этот раз немного повысим сложность.
Я подумал, что это будет здорово, ведь в коде из статьи уже имелся крошечный, но функциональный мутатор, а набор тестов был призван это подчеркнуть; это значит, что мы можем сравнивать производительность и реализацию копирующего сборщика и обычного сборщика.
https://habr.com/ru/companies/ruvds/articles/861776/
Алгоритмы и Структуры данных
Как мы искали самый точный метод детектирования ключевых точек
Для автономного транспорта важно решить задачу автономной навигации. Один из методов автономной навигации – это SLAM (simultaneous localization and mapping), который в зависимости от типа используемых сенсоров бывает: визуальным, визуально-инерциальным, лидарным, радарным, RGBD и др.
Сегодня особый научный и практический интерес представляют методы визуально-инерциального SLAM (viSLAM) [1, 2], которые делятся на прямые и непрямые. Для непрямых методов viSLAM принципиально важна точность триангуляции трехмерных координат точек [3], а она в свою очередь зависит от точности работы детекторов ключевых точек [4].
Мы провели сравнительный анализ точности наиболее перспективных методов детектирования ключевых точек, как «эвристических» (hand-crafted), так и обучаемых. О наших экспериментах и их результатах расскажем ниже.
https://habr.com/ru/articles/724580/
Алгоритмы и Структуры данных
Как российские разработчики заставили GPT предсказывать биржевые котировки
18 мая 2024 на конференции «Тюльпаномания» Тихон Павлов, количественный аналитик «Финансовой компании Викинг» раскрыл секрет использования GPT-4 для прогнозирования биржевых котировок. Тема разделила аудиторию на скептиков и энтузиастов, породив жаркие дебаты о будущем трейдинга. Никто не остался равнодушным.
В статье расскажем про эксперимент, как нам удалось заставить языковую модель принимать числовые данные и предсказывать биржевые котировки.
https://habr.com/ru/articles/861492/
Алгоритмы и Структуры данных
Рецепты TypeScript: типизированное преобразование объекта
Всем привет от ведущего разработчика из Cloud.ru! Как и обещал в предыдущей статье, продолжаю рассказывать про TypeScript-рецепты. Наши рецепты — это готовый код, который можно применить в конкретных ситуациях, а в некоторых случаях и подогнать ситуацию под код.
В этой статье предлагаю обсудить, как на обычном TypeScript приготовить такую функцию, которая из конфига роутинга по приложению вычислит объект, содержащий все пути внутри приложения. При этом сам объект роутинга будет иметь некоторую вложенность, а итоговая мапа с путями будет плоской структурой со значениями полей в виде строк. И всё это строго типизировано!
https://habr.com/ru/companies/cloud_ru/articles/860770/
Алгоритмы и Структуры данных
Ну неужели..
Недавно мы заменили редактора, теперь контент отбирается более качественно!
Также мы прибегли к решению закрыть чаты, для борьбы со спам-ботами и открыли для вас удобный Форум Программистов.
Полезный список IT каналов: @Portal_v_IT
Генетический алгоритм: природа в действии для оптимизации сложных задач (c примером на java)
Генетические алгоритмы (ГА) — это мощный инструмент для решения задач оптимизации, вдохновленный процессами эволюции в природе. Подобные алгоритмы применяются в таких областях, как маршрутизация, машинное обучение, финансовая аналитика, проектирование и многие другие. В этой статье я разберу принцип работы ГА и приведу пример решения, одной из самых популярных задач в алгоритмах на языке Java.
Статья может быть полезна для новичков, изучающих алгоритмы для общего развития, например, в качестве одно из подходов решения задачи коммивояжера, конечно код реализации данной задачи достаточно массивен и не является оптимальным для собеседования, а так же работы с малыми объемами данных.
https://habr.com/ru/articles/861334/
Алгоритмы и Структуры данных
Рецепты TypeScript: подстановка параметров в путь
Этой статьей я начинаю цикл коротких материалов, посвященный рецептам TypeScript. Что такое рецепты? Это готовый код, который можно применить в конкретных ситуациях, а в некоторых случаях и подогнать ситуацию под код.
Наше первое блюдо — функция на обычном TypeScript, которая поможет вычислить необходимые параметры для строки с маской постановки (например,:userId/resources/:resourceId, где такие параметры — это userId и resourceId) и заставит пользователя указать эти параметры либо выдаст ошибку при сборке проекта.
https://habr.com/ru/companies/cloud_ru/articles/860764/
Алгоритмы и Структуры данных
Обнаружение «шумных соседей» с помощью eBPF
Команды подразделения Netflix Compute and Performance Engineering регулярно анализируют происшествия, связанные с падением производительности программ, работающих в нашей многоарендной среде. Первый шаг такого анализа заключается определении того, что является источником проблемы: приложение или инфраструктура. Надо отметить, что подобные изыскания часто усложняет одна неприятность, известная как проблема «шумного соседа» («noisy neighbor»). На нашей многоарендной вычислительной платформе Titus «шумный сосед» представляет собой контейнер или системный сервис, который интенсивно использует серверные ресурсы, что приводит к падению производительности близких к нему контейнеров. Обычно мы уделяем особое внимание использованию CPU, так как именно за этот ресурс чаще всего борются наши рабочие нагрузки и их «шумные соседи».
https://habr.com/ru/companies/wunderfund/articles/859978/
Алгоритмы и Структуры данных
⚡️ В России официально утвердили цифровую валюту
Но самое забавное — что 92% граждан не знают даже что такое биржи и криптокошелек. Не говоря уже о том, как за пару кликов сделать месячную заработную плату.
Первые, кто разберется в этом — сколотит состояние💰
Для этого достаточно читать канал Арбитраж Крипты, который откроет вам мир криптовалют и покажет, как на них зарабатывать.
Автор канала на пальцах объясняет, как покупать криптовалюту в месте «А» дешевле, а продавать в месте «Б» дороже.
«Купили → продали, купили → продали, а разницу забрали себе».
Выбор за вами: пролистать или делать по 35 000 ₽ в день, сидя на диване💥
Успейте присоединиться, скоро доступ будет закрыт: @arbitrazh
Учимся совершать правильные ошибки — краткое сравнение человеческого восприятия и мультимодальных языковых моделей
Представьте, что вы, совершенно один, отдыхаете в своём маленьком бревенчатом домике в лесу. Когда вы, декабрьским вечером, начинаете читать уже вторую книгу из списка «Книги недели», вы слышите поблизости чьи-то тяжёлые шаги. Вы бросаетесь к окну, чтобы посмотреть — кто это там прошёл. Через окно вы видите крупный силуэт кого-то, кто, кажется, покрыт мехом. Существо исчезает в тёмном лесу сразу за вашим крыльцом. Информация, которую вы получили из окружающей среды, прямо-таки кричит вам: «Я встретил снежного человека!». Но ваш здравый рассудок говорит, что это был, с гораздо большей вероятностью, просто слишком увлечённый путешествием турист, который прошёл мимо вашего дома.
Вы только что успешно совершили «правильную ошибку», предположив, что у вас за окном, вероятно, путешественник, несмотря на то, что имеющаяся у вас информация свидетельствует о другом. Ваш мозг нашёл «рациональное объяснение» исходной информации благодаря имеющимся у вас годам опыта жизни в лесу.
https://habr.com/ru/companies/wunderfund/articles/724608/
Алгоритмы и Структуры данных
GIMP Script-Fu Первый Дан. Линейные преобразования на плоскости
Итак, настоящая киллер функция по отображению изображений это gimp-item-transform-matrix. Именно на её основе мы и будем строить все отображения изображений в нашем проекте.
Для использования функции GIMP gimp-item-transform-matrix, осуществляющей линейное преобразования заданного отображаемого объекта, нам нужна структура в которой мы могли бы хранить матрицу преобразования. На основе этой структуры, мы построим абстракцию линейного двумерного преобразования на плоскости. Я посмотрел все эти преобразования и увидел, что матрица имеет всего 6 значимых полей, остальные два ноль и одно единица, поэтому наша структура будет хранить всего 6 полей.
https://habr.com/ru/articles/861000/
Алгоритмы и Структуры данных
Мастер-класс по Python для школьников. Бесплатно!
Онлайн-урок от ведущего ИТ ВУЗа страны - Университета Иннополис для учеников 6-11 классов.
👍Бесплатно!
✅Познакомим с профессией тестировщика.
✅Научим проверять программы, находить баги.
✅На практике отработаем использование инструментов и методов тестирования.
⚡Ваш ребёнок за один час создаст автоматический тест на языке программирования Python и сможет использовать полученные знания в дальнейшем!
Для участия важно знание основ программирования на Python.
Помогите ребёнку освоить востребованную профессию.
Регистрируйтесь!
Зарегистрироваться
#реклама 16+
progmatica.innopolis.university
О рекламодателе
OSDEV: Разработка аллокатора на С++ часть 1. Неявный список свободных блоков с граничными тегами
При разработке ОС на с++ мы сталкиваемся с рядом трудностей, таких как отсутствие стандартной библиотеки и ABI с++ и прочее в этом духе. При чем перед реализацией PageAllocator и прочих аппаратных механизмов хотелось бы иметь какую то стандартную библиотеку позволяющую делать хоть что то. Об этом и пойдет речь.
Далее я расскажу о своем опыте разработки таких алгоритмов для своей ОС и о том, как их тестировать у себя на своей рабочей системе с юнит тестами и прочим, прикручивая в итоговую демку проверенный тестами код, и начну я с аллокатора.
Речь пойдет о немного переделанном алгоритме Кнута неявный список блоков с граничными тегами который описан в конце третьего тома в разделе "Распределение памяти". Его идея предельно проста:
https://habr.com/ru/articles/860872/
Алгоритмы и Структуры данных
В Москве утверждены адреса домов, попавших под снос!
Финальные списки домов, которые снесут до 2032 года уже сформированы. Выбирай свой район из списка, чтобы проверить ваш дом: 👇
ЦАО: @CAO24
Патрики: @patriki
Таганский: @taganskiy
Якиманка: @yakimanka
Басманный: @basmanny
Хамовники: @khamovniki
Пресненский: @presnenskiy
Тверской и Арбат: @tverskoi
Мещанский: @meshchanskiy
Замоскворечье: @zamoskvoi
Красносельский: @krasnoselsky
СВАО: @SVAO24
Бибирево: @bibirevo
Ярославский: @uarik
Отрадное: @otradnoe
Бутырский: @butyrskiy
Бабушкинский: @babushk
Медведково: @medvedkovo
Алексеевский: @alexeevskiy
Марьина роща: @marinaroshcha
Свиблово и Ростокино: @sviblovo
Останкино и Марфино: @ostankino
Лианозово и Алтуфьево: @lianozov
САО: @SAO24
Дегунино: @degunino
Сокол и Аэропорт: @sokol
Дмитровский: @dmitrovskiy
Хорошёво и Беговой: @horoshov
Коптево и Войковский: @koptevo
Ховрино и Головинский: @hovrino
СЗАО: @SZAO24
Митино: @mitino
Тушино: @tushino
Строгино: @strogino
Хорошёво-Мнёвники: @mnevnik
Стрешнево и Щукино: @pokrovsk
ЗАО: @ZAO24
Раменки: @ramenki
Очаково: @ochakovo
Тропарёво: @troparev
Солнцево: @solntsevo
Можайский: @mojaiskiy
Дорогомилово и Фили: @fili
Кунцево и Крылатское: @kunzevo
Ново-Переделкино: @novoperedel
Проспект Вернадского: @vernadsk
ЮЗАО: @UZAO24
Зюзино: @zuzino
Бутово: @butovo
Коньково: @konkovo
Ясенево: @yasenevo
Тёплый Стан: @teplystan
Академический: @akadem
Черёмушки: @cheremushki
ЮАО: @UAO24
Бирюлёво: @birulevo
Чертаново: @chertanovo
Орехово-Борисово: @orexboris
Донской и Даниловский: @donsk
Нагатино и Нагорный: @nagarino
Царицыно и Москворечье: @tsari
Братеево и Зябликово: @brateevo
ЮВАО: @UVAO24
Лефортово: @lefor
Марьино: @marino
Люблино: @lublino
Кузьминки: @kuzminki
Рязанский: @razanskiy
Некрасовка: @nekrasov
Южнопортовый: @uznoport
Выхино-Жулебино: @vihzhel
Текстильщики, Печатники: @teksti
ВАО: @VAO24
Гольяново: @galianovo
Измайлово: @izmailovo
Сокольники: @sokolniki
Ивановское: @ivanovskoe
Косино и Вешняки: @kosino
Богородское: @bogorodskoe
Перово и Новогиреево: @perovo
Преображенское: @preobrazhensk
ТиНАО: @TiNAO24
ЗеЛАО: @ZeLAO24
Вся Москва и область: @moscow
YOLOv7 для определения поз людей на видео
В этом посте мы познакомимся с возможностями YOLOv7 для определения поз людей на видео, обсудим принцип работы алгоритма, разберёмся, чем принципиально отличается подход к детекции скелетов человека в модели YOLOv7 и других фреймворках, подробно пройдёмся по всем шагам запуска на инференс предобученной модели YOLOv7-pose для детекции людей с их скелетами.
В процессе копания в первоисточниках и не только, мне удалось почерпнуть несколько интересных фактов о YOLO, чем я поделюсь. Некоторые труднопереводимые термины будут оставаться как есть.
https://habr.com/ru/articles/725296/
Алгоритмы и Структуры данных
К гипотезе Коллатца через эзолэнг Джона Конвея
Тема эзотерических языков программирования на Хабре, конечно, представлена, но, как мне кажется, не пользуется сильной популярностью. В то время, как гипотеза Коллатца, хоть и является более узкой темой, обсуждается гораздо активнее.
Одним из интересных (на мой субъективный взгляд) эзолэнгов является FRACTRAN, концепция которого была предложена Джоном Конвеем (известным в первую очередь конечно же благодаря игре «Жизнь»).
В этой статье я расскажу про клёвую математику, лежащую в основе этого эзотерического языка программирования, разберу несколько простых программ на нём, и, наконец, покажу связь FRACTRAN'а с гипотезой Коллатца. Статья во многом является вольным пересказом соответствующей главы книги Strange Code: Esoteric Languages That Make Programming Fun Again (которую я бы рекомендовал всем, кто хочет взглянуть на программирование под другим углом).
https://habr.com/ru/articles/725456/
Алгоритмы и Структуры данных
GIMP Script-Fu Первый Дан. Реализация Хеш-Таблицы
Любой современный язык поддерживает множество структур данных, позволяющих программисту эффективно разрабатывать свои программы. В принципе для большинства задач решаемых прикладным программистом достаточно трёх основных структур: список, структура которая может расти неограниченно, но имеющая малую скорость доступа к произвольному элементу, массив(или вектор), структура имеющая быстрый доступ к произвольному элементу, но ограниченная, выбранным заранее размером и хеш-таблица, совмещающая достоинства обоих этих структур, доступ к произвольному элементу, за константное время(чуть большее чем у массива) и имеющая возможность расти неограниченно.
Тинисхема имеет в своём наборе возможных структур данных и списки, и массивы, но вот реализации хеш-таблиц для неё нет. В этой статье мы попытаемся исправить этот недостаток, снабдив прикладного программиста ещё одной мощной структурой данных.
С чего начать разработку хеш-таблиц? Конечно же с функций создающих хеш-код для примитивных типов данных, которые мы планируем использовать в качестве ключей.
https://habr.com/ru/articles/860576/
Алгоритмы и Структуры данных
Алгоритм «Longest common subsequence» на Go. Как прийти к решению?
Среди программистов не утихают споры о том, надо ли знать "алгосики" для реальной работы, или же это просто некий странный ритуал для прохождения воронки собеседований в компании а-ля FAANG (MANGA). У нас в Каруне в разных командах есть разные мнения на этот счёт. Я, например, как тимлид Go-команды считаю, что некую элементарную базу знать точно бы не помешало, но всё же главное, чтоб человек был хороший.
Мнения могут различаться, но одно я знаю точно: разгадывать загадки бывает очень интересно. Я как-то из любопытства прорешивал задачки на hackerrank, и, если для решения простых задач тупо достаточно догадаться отсортировать данные или построить map (даже не надо ничего особо знать), то для некоторых придумать решение довольно проблематично.
Одна из таких задач — нахождение самой длинной общей подпоследовательности (longest common subsequence). Подобный алгоритм используется в реальной жизни, в таких программах как diff. Скажу сразу: я не смог решить задачу самостоятельно за разумное время (т.е. пока не надоело решать) и посмотрел алгоритм в Википедии.
Но бог с ним с алгоритмом, мне стало жутко интересно, как же, блин, я должен был рассуждать, чтобы самому прийти к этому решению. В итоге эти рассуждения я решил выложить в виде статьи на Хабр.
https://habr.com/ru/companies/karuna/articles/725552/
Алгоритмы и Структуры данных
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
