fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

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

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

رفتن به کانال در Telegram

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

نمایش بیشتر
7 575
مشترکین
-324 ساعت
-197 روز
-6630 روز
آرشیو پست ها
✔️ Шпаргалка по выбору алгоритма машинного обучения #cheatsheet #datascience
✔️ Шпаргалка по выбору алгоритма машинного обучения #cheatsheet #datascience

big-o-cheatsheet.pdf2.55 KB

📌 Шпаргалка по алгоритмам и структурам данных Сохраняй себе и делись с другом! #cheatsheet
+1
📌 Шпаргалка по алгоритмам и структурам данных Сохраняй себе и делись с другом! #cheatsheet

Хочешь учить Python в кайф? Салют! На связи Николай. Я senior-разработчик из Яндекс, со стажем 9 лет в программировании. У ме
Хочешь учить Python в кайф? Салют! На связи Николай. Я senior-разработчик из Яндекс, со стажем 9 лет в программировании. У меня есть телеграм-каналы для эффективного и захватывающего изучения Python'a: Практика – ключевой элемент в обучении, поэтому канал Python | Тесты для программистов – настоящая находка с увлекательными тестами и детальным объяснением к каждому ответу. Присутствует классификация по сложности и рангам, следовательно подойдет как для полных чайников, так и для твердых мидлов. Разъяснивший Python - в нём вы узнаете как основы питона (функции, библиотеки), так и его глубинные тайны (почему 0.1 + 0.2 != 0.3). А ещё здесь целая куча гайдов, фич, шпаргалок, программ и всякой полезности.

Типы связных списков (LinkedList) Продолжаем начатую вчера тему про LinkedList! Сегодня на посылке дня у нас типизация и основные операции над ними. Типы: 1. Простой связный список - навигация данного списка только вперед. То есть добавляются новые элементы только в конец списка и никак по другому. Содержит только одну ссылку next 2. Двусвязный список. Эти списки, которые позволяют нам ходить по ним в обоих направлениях. Соответственно и добавлять также элементы, как в начало, так и в конец. А также стоит упомянуть, что кроме ссылки next у них есть ссылки prev. 3. Круговой связный список - последний элемент данного списка содердит ссылку на первый элемент данного списка. А первый элемент будет иметь ссылку на последний элемент. То есть, можно сказать что это тоже двусвязный список, но закольцованный. Основные операции над связными списками 1. Вставка - добавит элемент в начало списка(конец списка в зависимости от реализации (к примеру если есть ссылки head и tail мы можем добавлять в обоих направлениях) 2. Удаление - удаляет элемент в начале списка (или его в конце, если ссылка tail, кроме head) 3. Дисплей - отображает полный список (реализован через цикл). 4. Поиск - поиск элемента по заданному списку (реализован через цикл) 5. Удаление по ключу - находит элемент по ключу, после удаляет его (также через цикл)

Математика для аналитика данных как телескоп «Джеймс Уэбб» для астрофизика — помогает видеть детали и делать правильные вывод
Математика для аналитика данных как телескоп «Джеймс Уэбб» для астрофизика — помогает видеть детали и делать правильные выводы. Чтобы уверенно использовать математику в своей работе и повысить конкурентоспособность, пройдите курс от Яндекс Практикума. Он создан специально для начинающих аналитиков. За 4 месяца обучения вы: → погрузитесь в линейную алгебру и математический анализ; → разберётесь в теории вероятности; → решите более тысячи задач в онлайн-тренажёре; → создадите 4 проекта для своего портфолио; → подготовитесь к собеседованиям с помощью симулятора. Опытные аналитики разложат сложные темы по полочкам, а наставники подскажут, как вам ускорить прогресс. Вы сможете совмещать с работой или другой учёбой, а также попробовать обучение бесплатно. Переходите по ссылке и приступайте к занятиям! Начать обучение →

​​Связный список (LinkedList) Связанный список является второй наиболее используемой структурой данных после массива. Ниже приведены важные термины для понимания концепции связанного списка. Node - элемент связного списка, этот элемент содержит в себе два значения, которые и являются основой LinkedList: ссылка на следующий элмент и значение Next - ссылка на следующий элемент, то есть на следующую Node Value - значение самой Node, который мы хотим хранить Достоинства использования: 1. Эффективное (за константное время) добавление и удаление элементов 2. Размер ограничен только объёмом памяти компьютера и его разрядностью 3. Динамическое добавление и удаление элементов Недостатки использования: 1. Сложность прямого доступа к элементу, а именно определения физического адреса по его 2. На указатели расходуется дополнительная память, так как их надо хранить 3. Некоторые операции медленее, так как нельзя получить по индексу элемент и надо проходиться по всему списку 4. Труднее использовать при параллельных вычислениях 5. Соседние элементы списка находятся не рядом, что может поспособствовать проблеме при их кэшировании

​​Алгоритм Жонглирования Как и обещал вчера, есть другой способ решения для операции вращения массива. На самом деле это продолжение 2 метода решения, что мы рассмотрели вчера. Просто вместо перемещения по одному, массив делится на разные выборки(sets), где количество этих выборок равно НОД n и d. Соответственно перемещение элементов проиходит внутри этих выборок(sets) Возьмем для примера следующие параметры: arr = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, n =12, d = 3. Высчитав НОД не составит труда и он будет равен 3 (НОД(12, 3)) Соответственно после первого прохода мы получим следующий массив: 4, 2, 3, 7, 5, 6, 10, 8, 9, 1, 11, 12 На последующем шаге: 4, 5, 3, 7, 8, 6, 10, 11, 9, 1, 2, 12 И на завершающем шаге: 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3 Time complexity : O(n) Auxiliary Space: O(1)

Выучить программирование - легко! Для успешного обучения кодингу обязательно нужны шпаргалки и руководства. Но где их взять?
Выучить программирование - легко! Для успешного обучения кодингу обязательно нужны шпаргалки и руководства. Но где их взять? Тут, специально для вас, создали хранилище со всем самым необходимым – Code Guru, советуем подписаться ;)

​​Операция вращения массива Задача: Написать функцию rotate, которая вращает массив размера n на d элементов Способ решения 1: использование дополнительного массива К примеру нам даны следующие параметры на входе: arr = 1, 2, 3, 4, 5, 6, 7, d = 2, n = 7 1. Первым делом мы предсохраним первые d элементов в temp массиве temp = 1, 2 2. Сделаем очищение этих элементов с начала нашего оригинального массива (к примеру при помощи shift(часто реализовано во многих языках, только называется по другому)). arr = 3, 4, 5, 6, 7, 6, 7 3. Приатачим к оригинальному массиву наш temp массив: arr = 3, 4, 5, 6, 7, 1, 2 Time Complexity: O(n) Space Complexity: O(d) Cпособ решения 2: вращать друг за другом 1. Сохраним arr0 во временной переменной temp 2. Переместите arr1 в arr0 с последующими поступить также и наконец добавьте в конец temp То есть по тому же примеру у нас есть параметры: arr = 1, 2, 3, 4, 5, 6, 7, d = 2 Мы данный массив будем вращать 2 раза, первый раз получим следующий массив: 2, 3, 4, 5, 6, 7, 1 После второго же вращения получится: 3, 4, 5, 6, 7, 1, 2 Time Complexity: O(n * d) Space Complexity: O(1) Source Code вы можете увидеть на картинке ниже! Но есть более интересный способ решения, который мы рассмотрим в следующий раз.

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

🐍 Быстрая сортировка QuickSort — это алгоритм «разделяй и властвуй». Он выбирает элемент в качестве опорного элемента и разб
🐍 Быстрая сортировка QuickSort — это алгоритм «разделяй и властвуй». Он выбирает элемент в качестве опорного элемента и разбивает заданный массив вокруг выбранного опорного элемента. Реализация на Python: def quicksort(l, r, nums): if len(nums) == 1: return nums if l < r: pi = partition (l, r, nums) quicksort(1, pi-1, nums) quicksort (pi+1, r, nums) return nums Существует много разных версий quickSort, которые по-разному выбирают точку опоры.

Разновидности массивов Понятное дело, что есть и определенные разновидности массивов. В частности основными типами являются: 1. Одномерные 2. Многомерные Тут все просто, одномерные массивы - это те что представлены выше на картинке. Многомерные же, массивы в которых вложены другие массивы. Но есть и другая типизация: 1. Статические массивы 2. Динамические массивы Тут тоже никаких сложностей. Статический массив - массив у которого заранее предопределен его размер. Основные сложности в использовании, тесно связаны с этим ограничением. Так как если вы захотите добавить что-то сверх, вам придется создавать новый массив и перекладывать из старого все значения. Динамический массив - массив у которого динамический размер. Тут проще с использованием, однако есть и свои особенности. В частности как выделять память для такого массива. Не всегда же увеличивать ее в 2 раза, было бы очень глупой потерей памяти. Хранение динамического массива в памяти Под массив всегда выделяется фрагмент в памяти RAM, размер этой памяти всегда больше требуемого. Дается такому выделению имя - емкость массива. Текущая длина хранится в отдельном счетчике. Она естественным образом нужна для того чтобы определить размер, но также и для того чтобы следить за границей массива. Команда увеличения размера массива - если емкость не превышена, просто измнит счетчик длины массива до нужного размера. Команда увеличения размера сделает следующее: 1. Выделит новый фрагмент в RAM, размер которого превышает размер массива 2. содержимое массива скопирует в эту выделенную память 3. Размер и емкость массива обнулит 4. В служебной стрктуре, где хранятся указатели - изменит их 5. Запустит высвобождение памяти, которая ранее использовалась для массива

Структура данных: массивы Массив (список) - набор элементов, которые хранятся непрерывно в памяти. Что означает непрерывно? Это означает, что в памяти данная структура хранится ячейка за ячейкой. Основная идея массивов состоит в том, чтобы хранить несколько различных элементов в одном месте. Основным плюсом будет то, что очень просто вычислить положение каждого элемента. Потому что каждый последующий добавленный элемент будет добавлять смещение к базовому элементу. Если быть более точным, то смещение будет в памяти. Изображение показывает, что каждый элемент можно однозначно идентифицировать по их индексу в массиве (аналогично тому, как вы можете идентифицировать список ваших любимых вещей в порядке важности).

Почему ИИ так актуален в банковской сфере? Узнай на лекции от Газпромбанка уже 25 августа Подробнее о лекции: Где: в Zoom Во
Почему ИИ так актуален в банковской сфере? Узнай на лекции от Газпромбанка уже 25 августа Подробнее о лекции: Где: в Zoom Во сколько: в 18:00 (по МСК) Спикер: Адель Валиуллин, начальник отдела искусственного интеллекта Газпромбанка Что узнаем: почему искусственный интеллект (AI) сегодня так актуален, в каких сферах применяется, какие задачи решаются в банке на основе AI и, конечно, что нужно знать для построения карьеры в data science и AI Встречаемся 25 августа, регистрируйся по ссылке - https://vk.cc/cfSGEf

Структуры данных в JavaScript. В видео автор расскажет про то, какие структуры данных встроены в JavaScript и покажет как создать собственную структуру данных ArrayList https://youtu.be/dFwNSyVC_5Y

Найти работу в айти можно 2 методами: Первый. Бесконечно скроллить HeadHunter и пытаться что-то выклевать на LinkedIN. Офигет
Найти работу в айти можно 2 методами: Первый. Бесконечно скроллить HeadHunter и пытаться что-то выклевать на LinkedIN. Офигеть от условий и закрыть. Второй. Подписаться на JavaJob. Это база адекватных предложений, где даже для новичков много мест с хорошей з/п. Тут найдете работу как в Яндексе (именно сюда крупняки присылают вакансии напрямую), так и в молодых стартапах! В общем, не теряйте времени и находите работу в 2 клика: @Job_javadevs

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

💻 Основные структуры данных Из видео вы узнаете про самые используемые структуры данных: статический, динамический и ассоциативный (HashTable) массив. Видео довольно трудное для новичков, поэтому переходите к просмотру только в том случае, если вы знаете про hash-функции и сложность алгоритмов. А ещё автор говорит очень быстро, поэтому советуем немного размять мозги, чтобы всё освоить https://www.youtube.com/watch?v=K4sYJHuNgmE