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

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

Открыть в Telegram

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

Больше
7 756
Подписчики
-124 часа
-37 дней
-2530 день
Архив постов
Heap (куча) - структура данных Куча - это особая древовидная структура данных, в которой дерево представляет собой законченно
Heap (куча) - структура данных Куча - это особая древовидная структура данных, в которой дерево представляет собой законченное двоичное дерево. Обычно кучи бывают 2х типов: 1. Max-Heap - ключ, в корневом узле, должен быть наибольшим среди ключей, присутсвующих во всех дочерних элементах. Это свойство рекурсивно истинно для всех последующих от корня узла 2. Min-Heap - полностью наоборот. То есть в корне находится самый минимальный элемент.

В сеть слили ссылки на 3 топовых канала! Успей, пока не сменили: • Бесплатные авторские видеоуроки и курсы — IT-EX | Уроки пр
В сеть слили ссылки на 3 топовых канала! Успей, пока не сменили: • Бесплатные авторские видеоуроки и курсы — IT-EX | Уроки программирования • Самая топовая IT-литература — Просто IT книги Подпишись, и получай порцию годного контента каждый день!

Решение проблемы в поиске наименьшего/наибольшего элемента Алгоритм 1 Простое решение - отсортировать данный массив с помощью
Решение проблемы в поиске наименьшего/наибольшего элемента Алгоритм 1 Простое решение - отсортировать данный массив с помощью сортировки О(N log N). После чего вернуть элемент с индексом K-1 в отсортированном массиве Алгоритм 2 Можно оптимизировать - создав минимальную кучу из заданных n элементов и вызвать стандартный метод extractMin (что такое Heap(куча) - мы как раз поговорим завтра)

Найти наименьший/наибольший элемент в несортированном массиве Дан массив и число k, где k меньше размера массива, нам нужно н
Найти наименьший/наибольший элемент в несортированном массиве Дан массив и число k, где k меньше размера массива, нам нужно найти k-й наименьший элемент в данном массиве. При этом задано, что все элементы массива различны.

Основа алгоритма Quick Sort Как я уже говорил сегодня, суть алгоритма заключается в разделении массива на два подмассива. Это
Основа алгоритма Quick Sort Как я уже говорил сегодня, суть алгоритма заключается в разделении массива на два подмассива. Этот алгоритм эффективен для больших объемов данных, так как худшая сложность составит О(n^2) Алгоритм 1. Выберите наибольшее значение индекса - в качестве pivot 2. Возьмите 2 переменные, чтобы указать левую и правую часть списка. Исключая наш pivot. Эта переменная и будет хранить наш массив слева и справа 3. Переупорядочьте массив, помещая элемент на его окончательно место 4. Отсортируйте рекурсивно элементы слева от разрешающего 5. Аналогично отсортируйте и правую сторону

3D News — самые актуальные и интересные новости из IT-индустрии: — Youtube пофиг, нравится тебе контент или нет; — Зарплаты I
3D News — самые актуальные и интересные новости из IT-индустрии: — Youtube пофиг, нравится тебе контент или нет; — Зарплаты IT-специалистов в России стали снижаться; — Энтузиаст за пять лет выкопал весь игровой мир в Minecraft. Также откопали сливы платных IT-книг: — 📚 Полка Разработчика 📖 Кладовая Книг — 🗂 Архив Разработчика 🚽 IT Memes — свежий IT юмор, отобранный нейросетью.

Быстрая сортировка (Quick Sort) Быстрая сортировка - является высокоэффективным алгоритмом сортировки. Основана она на разбиении массива на меньше подмассивы. Большой массив делится на 2 более маленьких: один из них содержит значение меньше выбранного (pivot), другой больше значения pivot. Базовая суть алгоритма представлена в GiF. Посмотрите ее внимательно!

Мемоизация (Memoization) По факту - это всего лишь сохранение результатов выполнения функций, чтобы предотвратить повторные в
Мемоизация (Memoization) По факту - это всего лишь сохранение результатов выполнения функций, чтобы предотвратить повторные вычисления с теми же самыми параметрами. Это один из способов оптимизаци, который применяется для увелечения скорости выполнения программ или подпрограмм. Алгоритм работы: 1. Если функция не вызывалась, то вызвать ее и сохранить результат 2. Если вызывалась, достать сохраненный результат по ключу (к примеру по параметрам) Как видно, мемоизацию можно организовать при помощи кэша(ключ-значение). В дальнейшем мы об этом более подробно поговорим!

Этапы динамического программирования 1. Проблему делять на меньшую перекрывающую подзадачу 2. Оптимальное решение достигается
Этапы динамического программирования 1. Проблему делять на меньшую перекрывающую подзадачу 2. Оптимальное решение достигается при помощи использования оптимального решения небольших задач 3. Под капотом, всегда (почти всегда) используется memoization

Примеры использования динамического программирования 1. Ханойская башня 2. Кратчайший путь Дейкстры 3. Числовой ряд Фибоначи
Примеры использования динамического программирования 1. Ханойская башня 2. Кратчайший путь Дейкстры 3. Числовой ряд Фибоначи 4. Проблемы с рюкзаками, камнями и прочим набором задач, где надо сборка вещей 5. Все возможные пары кратчайшего пути по Флойд-Варшалл 6. Планирование

Аналитику данных без математики не обойтись. Если вы мечтаете об этой професии, но ваши знания нужно обновить или подтянуть,
Аналитику данных без математики не обойтись. Если вы мечтаете об этой професии, но ваши знания нужно обновить или подтянуть, в Яндекс Практикуме есть курс «Математика для анализа данных». Курс подойдет: Начинающим аналитикам Начинающим специалистам по Data Science Тем, кто готовится к собеседованиям в IT-компании Студентам и выпускникам курсов по анализу данных Как мы учим: ◼️Объясняем сложное простым языком, интерактивно и не скучно ◼️Разбираем бизнес-кейсы и каждый урок завершаем практикой ◼️Помогаем освоить навыки для работы и собеседований, объясняем и разбираем типовые задачи На всех этапах вас поддержат: ◼️Преподаватели – ответят в чате и помогут с решением сложных задач ◼️Кураторы – напомнят о сроках и ответят на вопросы об учебном процессе ◼️Поддержка 24/7 – поможет с техническими вопросами ◼️Одногруппники – развеселят и обнимут Оцените формат и пройдите бесплатный вводный урок: https://practicum.yandex.ru/math-for-da-ds/

Введение в динамическое программирование Сам подход динамического программирования очень схож с принципом, который мы не давн
Введение в динамическое программирование Сам подход динамического программирования очень схож с принципом, который мы не давно с вами рассмотрели: "Разделяй и Властвуй". То есть динамическое программироание - это тоже разбитие проблемы на более мелкие подзадачи. Однако разница между подходами есть! Подзадачи динамического программирования не решаются независимо. Данные результаты запоминаются и используются для аналогичных или перекрывающих подзадач.

Аналитику данных без математики не обойтись. Если вы мечтаете об этой професии, но ваши знания нужно обновить или подтянуть,
Аналитику данных без математики не обойтись. Если вы мечтаете об этой професии, но ваши знания нужно обновить или подтянуть, в Яндекс Практикуме есть курс «Математика для анализа данных». Курс подойдет: Начинающим аналитикам Начинающим специалистам по Data Science Тем, кто готовится к собеседованиям в IT-компании Студентам и выпускникам курсов по анализу данных Как мы учим: ◼️Объясняем сложное простым языком, интерактивно и не скучно ◼️Разбираем бизнес-кейсы и каждый урок завершаем практикой ◼️Помогаем освоить навыки для работы и собеседований, объясняем и разбираем типовые задачи На всех этапах вас поддержат: ◼️Преподаватели – ответят в чате и помогут с решением сложных задач ◼️Кураторы – напомнят о сроках и ответят на вопросы об учебном процессе ◼️Поддержка 24/7 – поможет с техническими вопросами ◼️Одногруппники – развеселят и обнимут Оцените формат и пройдите бесплатный вводный урок: https://practicum.yandex.ru/math-for-da-ds/

Всем привет! Мы создали для вас архив бесплатных курсов от самых известных школ. Ничего скачивать не надо - просто заходите и
Всем привет! Мы создали для вас архив бесплатных курсов от самых известных школ. Ничего скачивать не надо - просто заходите и изучайте Доступ к архиву по ссылке: https://t.me/+UeADZ6i3QiA4MmYy Кстати, если вам что-то непонятно всегда можете спросить у автора курса в комментариях ❤️

Задача: за минимальное количество перестановок, найти сведение меньших или равных элементов к значению K Дан массив из n нату
Задача: за минимальное количество перестановок, найти сведение меньших или равных элементов к значению K Дан массив из n натуральных чисел и числа K. Найдите минимальное количество перестановок, необходимое для сведение всех чисел, что равны или меньше числу К. Алгоритм 1. Создайте счетчик count, занесите туда все элементы что меньше или равны K 2. Используя технику двух указателей и "двигающегося окна", длиной count. Отслеживайте таким образом сколько элементов в этом диапазоне больше К 3. Повторяйте шаг 2 до тех пор пока не закончатся окна длинной count и выбирайте среди них минимум плохих вариантов

Telegram переполнен некачественными каналами по кодингу и айти. Специально для вас мы нашли 3 годных проекта, которые читаем сами: WEB – канал-сборник коротких тестов по веб-разработке. Каждый день выбираешь «правильно/неправильно» и качаешь скиллы в 2 раза быстрее. Machine Learning – научитесь работать с искусственным интеллектом и big data. Вместо тысячи курсов и роликов на ютубе. Книжная IT полка – хранилище более 5000 книг по кодингу и айти, переведенных на русский язык. От алгоритмов до питона и C++!

Shell Sort - сортировка массива Новый вариант сортировки, который мы сегодня разберем - Shell Sort. Этот алгоритм использует
Shell Sort - сортировка массива Новый вариант сортировки, который мы сегодня разберем - Shell Sort. Этот алгоритм использует сортировку вставки для широко распространенных элементов, сначала сортируя их, а затем сортирует менее широко расположенные элементы. Этот интервал называется интервалом. Данный интервал высчитывается при помощи формулы Кнута: h = h * 3 + 1, где h - интервал с начальным значением 1. На картинке показан метод самой сортировки, однако позже мы его разберем более подробно!

Сколько можно заработать на 3D-визуализации? Олег Кононыхин, 3D-визуализатор с 20-летним опытом, в 2021 году заработал 4 млн. Из них 500к пассивно. Да, вы можете сказать, что это опыт. Но, ребята, всему нужно учиться. Сейчас Олег набирает группу на 2-недельный курс и вы можете попробовать себя в профессии 3D-визуализатора абсолютно бесплатно. Что вас ждет? 📗 90% программы ー чистая практика. Вы с 0 сделаете 3D-визуализацию комнаты на основе реального фото интерьера. 📘 10% ー концентрированная теория без воды. Олег расскажет, как вам стать визуализатором и начать зарабатывать уже в этом году. 📙 Во время обучения персональный наставник поможет довести вашу работу до классного результата и ответит на все вопросы. 🎁 В конце автор лучшей работы получит 10.000 руб. Старт 23 сентября 👉 @diskill6_bot

Алгоритм удаления из BST (дерева бинарного поиска) Данный алгоритм очень схож с алгоритмом поиска. Поэтому по идее проблем с
Алгоритм удаления из BST (дерева бинарного поиска) Данный алгоритм очень схож с алгоритмом поиска. Поэтому по идее проблем с его пониманием не должно возникнуть. Кроме того, а что если у данного узла(что мы удаляем) - есть дочерние узлы. Что же, давайте рассмотрим данный алгоритм. 1. Находим узел который собираемся удалить и удаляем 2. Если у удаляемого узла есть только один дочерний элемент, то скопируйте дочерний элемент в узел(где находился ваш удаляемый элемент), и удалите дочерний элемент у него. 3. Если два дочерних узла. Найдите в порядке приемника необходимый узел из двух дочерних. Скопируйте содержимое приемника и удалите приемника. Не забудьте правильно расположить 2 дочерний элемент, ведь он станет теперь дочерним для перемещенного приемника!