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

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

前往频道在 Telegram

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

显示更多
7 756
订阅者
-124 小时
-37
-2530
帖子存档
Представление графов Тут тоже не всё так просто! Граф можно представить 2мя часто используемыми способами: 1. Матрица смежнос
Представление графов Тут тоже не всё так просто! Граф можно представить 2мя часто используемыми способами: 1. Матрица смежности 2. Список смежности На самом-то деле есть и другие способы представления: Incidence List or Matrix. Выбор того или иного представления сильно зависит от ситуации. По факту вам должно быть достаточно просто использовать нужные вам операции с графом. Чем проще - тем лучше

Кодим на коленке - прогерское комьюнити, а также все про бэкенд-разработку на Python, Java, C++, C#, PHP в коротких поленых статьях

Структура данных: Граф Пока вы решаете сложную задачу, мы перейдем к не менее сложной теме: графы! Граф состоит из конечного
Структура данных: Граф Пока вы решаете сложную задачу, мы перейдем к не менее сложной теме: графы! Граф состоит из конечного набора вершин(узлов) и набора ребер, которые соединяют пару узлов. Графы используются для решения многих реальных задач. К примеру для представления сетей: городских или телефонных или даже компьютерных сетей. Также представление графа заложено почти в каждой социальной сети.

Решение задачи: отсортировать почти отсортированный массив Я же не зря завел данную задачу, аккуратно после темы кучи (Heap).
Решение задачи: отсортировать почти отсортированный массив Я же не зря завел данную задачу, аккуратно после темы кучи (Heap). Как раз подобный вид сортировки - лучше сделать как раз при помощи Heap! Алгоритм 1. Создайте минимальную кучу (min Heap) размера k + 1, с первыми элементами k + 1 (это кстати у вас займет где-то O(k) 2. Один за другим удалите минимальный элемент из кучи, помещая элемент в массив результатов и добавьте новый элемент в кучу из оставшихся элементов

Задача: отсортировать почти отсортированный массив Дан массив из n элементов, где каждый элемент находится не более чем на k
Задача: отсортировать почти отсортированный массив Дан массив из n элементов, где каждый элемент находится не более чем на k от своей целевой позиции. Разработайте алгоритм, который выполняет сортировку за время O(n log k)

Сортировка кучей (HeapSort) Алгоритм сортировки в куче для сортировки в порядке возрастания: 1. Создайте максимальную кучу из
Сортировка кучей (HeapSort) Алгоритм сортировки в куче для сортировки в порядке возрастания: 1. Создайте максимальную кучу из входных данных. 2. На этом этапе самый большой элемент хранится в корне кучи. Замените его последним элементом кучи, а затем уменьшите размер кучи на 1. Наконец, скопируйте корень дерева. 3. Повторите шаг 2, пока размер кучи больше 1.

Операции над биномиальной кучей 1. insert(H, k) - вставкляет ключ К в биномиальную кучу H. Эта операция сначала создает бином
Операции над биномиальной кучей 1. insert(H, k) - вставкляет ключ К в биномиальную кучу H. Эта операция сначала создает биномиальную кучу с одним ключом, а затем вызывает объеденение для H 2. getMin(H) - пройдется по списку корней биномиальных деревьев и выдаст вам минимальный ключ 3. extractMin(H) - сначала вызывается метод getMin(), чтобы найти минимальное ключевое значение, после чего создаст новое биномиальное дерево, правильно его отформатировав 4. delete(H) - операция удаления, как и с операцией удаления в бинарном дереве: сначала уменьшает ключ до минус бесконечности, а после вызывает extractMin() 5. reduceKey(H) - сравниваем ключ уменьшения с ключом родительским, и если родительский ключ больше , мы меняем ключи и повторяем для родительского узла. Останавливаемся тогда, когда родительский элемент имеет наименьший ключ. 6. union - операция объеденения, которая используется во многих других функциях, как вы могли наблюдать.

Курс «Английский для аналитиков» от Яндекс Практикума Для специалистов, которые хотят изменить свою профессиональную жизнь и
Курс «Английский для аналитиков» от Яндекс Практикума Для специалистов, которые хотят изменить свою профессиональную жизнь и работать в международной команде. Обучение построено вокруг рабочих ситуаций и полезных для карьеры навыков: • Самопрезентация. Рассказ о своей роли, задачах, сфере ответственности на поведенческом интервью и в неформальной беседе. • Работа в команде. Стендапы, планирование спринтов, демонстрация навыков командной работы на собеседовании. • Общение с заказчиками и исполнителями. Сбор требований у стейкхолдеров и постановка задач для разработчиков. • Презентация результатов работы. Выступление на митапах, неформальное общение с коллегами из отрасли. • Обсуждение решений по проекту. Генерация и аргументация идей, участие в мозговых штурмах. • Рефлексия и самоанализ. Ретроспектива, ревью, ответы на сложные вопросы. Запишитесь на бесплатную консультацию. Определим ваш уровень языка, расскажем про обучение и ответим на все вопросы

Свойства биномиального дерева 1. У данного дерева 2К узлов 2. Глубина дерева равна К 3. На глубине i имеется ровно kCi узлов
Свойства биномиального дерева 1. У данного дерева 2К узлов 2. Глубина дерева равна К 3. На глубине i имеется ровно kCi узлов для i = 0, 1, ..., k 4. Корень дерева имеет степень k, а потомки корня сами являются биномиальными деревьями с порядком k-1, k-2,..0 слева направо

Хабр теперь в Telegram! Подписывайтесь: @habr_articles
Хабр теперь в Telegram! Подписывайтесь: @habr_articles

Биномиальная куча Основным применением двоичной кучи является реализация очереди приоритетов. Биномиальная куча - это расшире
Биномиальная куча Основным применением двоичной кучи является реализация очереди приоритетов. Биномиальная куча - это расширение обычной двоичной кучи, которое обеспечивет более быструю операцию объеденения или слияния. Биномиальное дерево порядка 0 имеет 1 узел. Кго уровня можно построить, взяв два биномиальных дерева порядка к-1 и сделав одно из них крайним левым дочерним элементом.

Для тех кто просил, открываем доступ в секретный канал на 2 ЧАСА👇 https://t.me/+Xw80YhSbTEpiNWJi

Скинуть секретный архив с платными материалами и книгами для программистов?
Anonymous voting

Операции над Min Heap 1. getMin - возвращает корневой элемент вашего Min Heap 2. extractMin - удаляет минимальный элемент из
Операции над Min Heap 1. getMin - возвращает корневой элемент вашего Min Heap 2. extractMin - удаляет минимальный элемент из MinHeap (сложность О(logN) из-за того что надо поддерживать свойства кучи) 3. reduceKey - уменьшает значение ключа (так же сложность O(logN) 4. insert - вставка нового элемента (занимает также O(logN)) Добавит вам новый ключ в конец дерева, если новый ключ больше, чем родительский, вам не придется ничего делать. В противном случае нужно пройти вверх, чтобы исправить свойства кучи 5. delete - удаление ключа (также займет в худшем случае O(logN)

Скинуть секретный архив с платными материалами и книгами для программистов?
Anonymous voting

Головокружительное начало в ИТ в ваших руках✨ Прогнозировать будущее сложно, но возможно. Университет Иннополис приглашает на
Головокружительное начало в ИТ в ваших руках✨ Прогнозировать будущее сложно, но возможно. Университет Иннополис приглашает на ИТ-курсы учеников 8-11 классов. Два года обучения, и новые навыки получены. Выбирайте, что больше нравится: Разработка 2D-игр на Python Telegram-боты на Python Разработка парсеров Разработка графических интерфейсов Приходите 28 сентября в 17:00 на вебинар, где мы расскажем, как еще в школе получить первые ИТ-навыки. Регистрируйтесь по ссылке, чтобы ничего не пропустить.

⚡️ Создали нейросеть, которая отбирает лучшие материалы для изучения Python: • Бесплатные курсы • Обучающие видео на YouTube
⚡️ Создали нейросеть, которая отбирает лучшие материалы для изучения Python: • Бесплатные курсы • Обучающие видео на YouTube • Шпаргалки • Книги Сохраняй канал и учи Python по материалам от нейросети: t.me/pythonguru

⚡️ Создали нейросеть, которая отбирает из всего интернета лучшие материалы для изучения программирования: - Сливы платных кур
⚡️ Создали нейросеть, которая отбирает из всего интернета лучшие материалы для изучения программирования: - Сливы платных курсов - Обучающие видео на YouTube - Шпаргалки - Книги Зайди и посмотри, что же нейросеть считает полезным для изучения - t.me/codehunter

⚡️ В канал CodeHunter слили платные курсы стоимостью более 850 тыс. ₽. Вот некоторые из них: • [Stepik] Big Data для Data Sci
⚡️ В канал CodeHunter слили платные курсы стоимостью более 850 тыс. ₽. Вот некоторые из них: [Stepik] Big Data для Data Science - 19,999₽ бесплатно на Сode Hunter [Geek Brains] Java - учимся на практике - 17,499р бесплатно на Сode Hunter [Stepik] Django 3 - Full Stack разработка веб-сайтов на Python - 15,999₽ бесплатно на Сode Hunter [HTML academy] Онлайн‑курс Vue js для опытных разработчиков - 15,999₽ бесплатно на Сode Hunter

Представление Двоичной кучи Как мы вчера уже поняли - двоичная куча - это полноценное двоичное дерево. Представляется куча в
Представление Двоичной кучи Как мы вчера уже поняли - двоичная куча - это полноценное двоичное дерево. Представляется куча в виде массива. Корневой элемент будет всегда в arr0 (нулевом индексе массива). В табличке (на картинке) - как раз указано, как в дальнейшем берутся индексы. Есть интересные свойства: 1. arr(i-1) / 2 - вернет всегда родительский узел 2. arr(2 * i) + 1 - вернет левый дочерний узел 3. arr(2 * i) + 2 - вернет правый дочерний узел