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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
7 761
Obunachilar
Ma'lumot yo'q24 soatlar
-57 kunlar
-3230 kunlar
Postlar arxiv
⚡️После блокировки YouTube, обучающие курсы и лекции взлетели в цене в 3 раза. Выкладываем 7834 ГБ платных курсов, книг и лек
⚡️После блокировки 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% граждан не знают даже что такое биржи и криптоко
⚡️ В России официально утвердили цифровую валюту Но самое забавное — что 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 для школьников. Бесплатно! Онлайн-урок от ведущего ИТ ВУЗа страны - Университета Иннополис для ученико
Мастер-класс по 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/ Алгоритмы и Структуры данных