Data Science: Алгоритмы и Структуры данных


Гео и язык канала: Весь мир, Русский
Категория: Технологии


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

Связанные каналы  |  Похожие каналы

Гео и язык канала
Весь мир, Русский
Категория
Технологии
Статистика
Фильтр публикаций


Shell Sort - сортировка массива

Новый вариант сортировки, который мы сегодня разберем - Shell Sort.

Этот алгоритм использует сортировку вставки для широко распространенных элементов, сначала сортируя их, а затем сортирует менее широко расположенные элементы. Этот интервал называется интервалом.

Данный интервал высчитывается при помощи формулы Кнута:

h = h * 3 + 1,

где h - интервал с начальным значением 1.

На картинке показан метод самой сортировки, однако позже мы его разберем более подробно!

Data Science: Алгоритмы и Структуры данных


Алгоритм удаления из BST (дерева бинарного поиска)

Данный алгоритм очень схож с алгоритмом поиска. Поэтому по идее проблем с его пониманием не должно возникнуть. Кроме того, а что если у данного узла(что мы удаляем) - есть дочерние узлы. Что же, давайте рассмотрим данный алгоритм.

1. Находим узел который собираемся удалить и удаляем

2. Если у удаляемого узла есть только один дочерний элемент, то скопируйте дочерний элемент в узел(где находился ваш удаляемый элемент), и удалите дочерний элемент у него.

3. Если два дочерних узла. Найдите в порядке приемника необходимый узел из двух дочерних. Скопируйте содержимое приемника и удалите приемника. Не забудьте правильно расположить 2 дочерний элемент, ведь он станет теперь дочерним для перемещенного приемника!

Data Science: Алгоритмы и Структуры данных


SciPy — библиотека для языка программирования Python с открытым исходным кодом, предназначенная для выполнения научных и инженерных расчётов.

Data Science: Алгоритмы и Структуры данных


Алгоритм вставки в бинарное дерево поиска

Для вставки нового элемента в дерево вам придется сделать последовательность шагов:

1. Начните обход дерева с корня

2. Сравнивайте вставляемый элемент с корнем, если он меньше, чем корень , то выполните ркекурсивный вызов для левого поддерева, в противном случае для правого.

3. Достигнув конца, просто вставьте этот узел слева (если он меньше) или справа

Data Science: Алгоритмы и Структуры данных


Представление и свойства BST

Как мы вчера уже выяснили BST - набор узлов, расположенных по свойствам BST. Каждый узел имеет ключ и значение. При поиске задействуется сам ключ и сравнивается с ключами в BST, и если он найден - то возвращается значение.

Соответственно операции над BST:

1. Поиск по ключу
2. Вставка элемент в дерево
3. Обходы дерева

Data Science: Алгоритмы и Структуры данных


Анализ данных на R в примерах и задачах

Видеокурс из двух частей от Computer Science Center

➡️Первая часть
➡️Вторая часть

Data Science: Алгоритмы и Структуры данных


Двоичное дерево поиска

Двоичное дерево поиска(BST) - дерево, в котором все узлы следуют свойствам:

1. Левое поддерево узла имеет ключ, меньше или равный ключу его родительского узла

2. Правое поддерево узла имеет ключ больше, чем ключ родительского узла.

Таким образом дерево делит все свои поддеревью на два сегмента: левое и правое поддеревья. Есть еще одно определение данного дерева:

leftsubtree(keys) =< node(key) =< rightsubtree(keys)

Data Science: Алгоритмы и Структуры данных


Решение задачи через один только проход

Да, эту задачу можно решить также и тупо одним проходом, нам снова понадобиться count(счетчик). Только теперь, кроме него нам нужна дополнительная функция swap(которая меняет местами элементы)

Итого у нас будет изначально count = 0 и цикл от начала до конца нашего массива. Мы будем проверять, если наш текущий элемент не равен 0, мы будем менять местами count элемент и элемент на текущей i-ой позиции:

for i in range(0, n):
if (arr[i] != 0):
   arr[count], arr[i] = arr[i], arr[count]
    count+=1

Data Science: Алгоритмы и Структуры данных


Настраиваем Python для машинного обучения на Windows

В этой статье рассказываем о возможностях Python для машинного обучения на Windows, описание дистрибутива Anaconda, процесс его установки и создание нейронной сети.

➡️Читать статью

Data Science: Алгоритмы и Структуры данных


Алгоритм решения задачи

Есть куча способов решить данную задачу. Ниже я приведу простой и интересный способ решить ее.

Пройдитесь по заданному массиву слева направо. Во время обхода поддерживайте количество ненулевых элементов в массиве (к примеру в счетчике count). Для каждого ненулевого элемента gjvtcnbnt элемент в arrcount и увеличьте сам count.

После полного обхода все ненулевые элементы уже будут перемещены во внешний интерфейс и count устанавливается как индекс нулевого элемента. Теперь все что нам остается - запустить цикл, который формирует все оставшиеся элементы нулевыми от count до конца самого массива.

Data Science: Алгоритмы и Структуры данных


Задача: переместить нули в конец

Дан массив случайных чисел, необходимо переместить все нули данного массива в конец. Например, если задан массив 1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0, необходимо его изменить к виду: 1, 9, 8, 4, 2, 7, 6, 0, 0, 0, 0.

Порядок остальных элементов должен остаться прежним. Сложность O(n), а пространство О(1)

Data Science: Алгоритмы и Структуры данных


Топ-10 алгоритмов машинного обучения

В машинном обучении есть нечто, называемое теоремой «No Free Lunch». Вкратце, в ней говорится, что ни один алгоритм не работает лучше всего для каждой проблемы, и это особенно важно для контролируемого обучения (т.е. predictive modeling).

➡️Читать статью

Data Science: Алгоритмы и Структуры данных


Алгоритмы машинного обучения

Данное видео поможет вам разобраться, какие проблемы есть в Machine Learning, и познакомит с различными алгоритмами.
Ключевые алгоритмы машинного обучения - это линейная регрессия, логистическая регрессия, дерево решений, случайный лес и алгоритм KNN.
Все алгоритмы представлены с простыми примерами и реализованы на языке Python.

➡️Смотреть видео

➡️Скачать видео

Data Science: Алгоритмы и Структуры данных


Возвращаем прямой формат контента по тематике канала. Полностью пересмотрели подход к постам.

Надеемся, что вам будет полезно.


Вращение в AVL-деревьях

Двойные повороты - достаточно сложная тема, но я нашел достаточно хорошее объяснение этому. Обратите ваше внимание на картинку. В данном случае представлено вращение влево-вправо.

Поворот влево-вправо - это комбинация вращений влево, за которым следует вращение вправо.

Есть аналогичное вращение вправо-влево, только оно с точностью наоборот. Сначала вращение вправо, а после уже влево!

Data Science: Алгоритмы и Структуры данных


Видео недоступно для предпросмотра
Смотреть в Telegram
Как работает сортировка вставками и чем она отличается от сортировки выбором

В видео разберём принцип работы алгоритма сортировки вставками и его ключевое отличие от сортировки выбором. Также покажем реализацию алгоритма на Python и наглядно разберём, как он сортирует элементы.

➡️Смотреть видео

➡️Скачать видео

Data Science: Алгоритмы и Структуры данных


Iron Core. Часть 3: Бессмертная командная строка

Публикуем перевод третьей статьи из серии (первая частьвторая), посвящённой информационным технологиям в авиаперевозках. Сегодня поговорим о режиме командной строки системы Amadeus, работа в которой опирается на язык, созданный для телетайпов. Этот язык до сих пор обеспечивает огромный процент бронирований билетов во всём мире — как тех, что выполняются различными агентствами, так и тех, что делаются посредством GDS.

https://habr.com/ru/companies/wunderfund/articles/1046431/

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


Stream compaction на NEON. Векторизуем copy_if

Даны массивы a и out. Нужно записать в out подряд, без пробелов, только те элементы a, которые удовлетворяют заданному условию. В статье — условие a[i] > threshold, a[i] ∈ (0, 1), threshold ∈ {0, 0.5, 1}.

https://habr.com/ru/articles/1055904/

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


АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ

Проект «Terminal» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны курсы, книги, полезные инструменты и практические тренажёры для всех разработчиков:

• Практические курсы и задания
• Книги и статьи известных авторов
• Полезные инструменты и ресурсы
• IT-новости и инсайды

Обучение по всем направлениям: SQL, Python, ML, Frontend, PHP, C++, Go, Git, Linux, QA, Java, Vibe-coding, InfoSec и др.

⌨️ подписаться


В чем смысл жизни с точки зрения термодинамики?

Мне хорошо запомнилось видео, где автор рассказывал про то, что многие люди находят свою работу бредовой и никому не нужной. Осмысленность труда - важная часть психологического комфорта, от которого зависит в том числе и продуктивность процессов. Если ты не понимаешь, зачем ты что-то делаешь, тяжелее исправлять и предугадывать собственные ошибки, а также сохранять концентрацию. В наше время люди часто впадают в личностные кризисы, которые симптоматически совпадают с депрессией, и я считаю эту проблему крайне серьезной, потому что проходил её сам. Я пытался решить системные проблемы с мотивацией и желанием жить с помощью терапии разных типов, в том числе и с использованием препаратов, но основной вклад в это внесли фундаментальная философия и фундаментальная физика. Я склонен считать, что на дистанции такая призма восприятия может помочь всем, поэтому решил ей поделиться.

https://habr.com/ru/articles/1055788/

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

Показано 20 последних публикаций.