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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish
7 756
Obunachilar
-124 soatlar
-37 kunlar
-2530 kunlar
Postlar arxiv
Видео о LinkedList Я думаю будет не лишним еще добавить очень неплохое видео о связном списке. Чтобы наверняка убрать у вас все вопросы касаемо этой темы и пойти дальше! https://youtu.be/QdCyTTid9-U

Знаменитости массово жалуются на искусственный интеллект, который сливает их интим-фотки. Процесс и результат работы – на видео. В телеграме даже появился канал, где пишут про разработки ИИ. Увидеть себя 90-летнего или создать фейк-порно со своей знакомой? Легко. Подпишитесь и офигеете, что нам приготовили технологии 2022: @art_intellect

​​Reverse Linked List Операция заключается в себе то, что нам необходимо последний узел - первым, и соответственно перевернуть все остальные элементы также. Для этого нам надо перейти сначала в конец списка. Конец списка(односвязного) всегда указывает на NULL своим указателем next. Теперь нам надо поменять его ссылку next на предыдущий элемент (который идет за ним). Мы должны убедиться, что последний узел не является потеряным. Таким образом у нас будет создан временный узел, который выглядит как головной, указывающий на последний узел. Теперь надо сделать (через цикл), чтобы все левые узлы указывали не на следующий элемент, а на свой предыдущий. Эту операцию надо сделать всем узлам, кроме первого. Первый же узел должен указывать на Null. Теперь можем взять тот temp head и установить его как оригинальный head. Вуаля, мы перевернули наш связный список

Знаменитости массово жалуются на искусственный интеллект, который сливает их интим-фотки. Процесс и результат работы – на видео. В телеграме даже появился канал, где пишут про разработки ИИ. Увидеть себя 90-летнего или создать фейк-порно со своей знакомой? Легко. Подпишитесь и офигеете, что нам приготовили технологии 2022: @art_intellect

​​Операция удаления из LinkedList Операция удаления, также является не однозначной операцией. Сначала необходимо найти целевой узел (при помощи цикла или если это head или tail взять сразу его). Левый узел(node) от нашего целевого (если он есть), теперь должен указывать на следующий узел, который идет после целевого. Это даст нам возможность удалить ссылку, которая указывала на целевой узел. Теперь нам надо удалить и сам целевой элемень. Соответственно берем его ссылку next и обнуляем в Null. После чего произойдет высвобождение памяти. Или мы его предсохраним в какую-то переменную.

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

​​Операция вставки в связный список (LinkedList) Добавление нового узла в связный список - это не такое и простое действие для понимания. Поэтому стоит его разобрать (как и все последующие действия). На изображении вы можете увидеть подробности. А пока поговорим про операции. Давайте представим ситуацию, когда мы хотим вставить узел С между узлами A и B. Соответственно наша ссылка next нашего узла C должна сначала начинать указывать на узел(node) B. После чего узел A также должен сменить свою ссылку next на новое место: на узел С, который мы и вставляем. Соответственно у узла А пропадет ссылка на узел B, которая была изначально. Аналогичные шаги надо будет сделать, если узел вставляется в начало списка (только с указателем head не забыть его поставить на новое значение) Вставка в конец, новый узел будет указывать указателем next на Null - тоже не забудьте это.

Представляем вам подборку лучших обучающих каналов по программированию Обучающий канал по 🐍Python🐍 - @Python_per_month Обуч
Представляем вам подборку лучших обучающих каналов по программированию Обучающий канал по 🐍Python🐍 - @Python_per_month Обучающий канал по ☕️Java☕️ - @java_per_month Обучающий канал по 💻SQL💻 - @SQL_and_DB_Learning Обучающий канал по 🤖C++🤖 - @Learning_pluses Лучшие 📚статьи📚 для программиста - @Best_IT_books

✔️ Шпаргалка по выбору алгоритма машинного обучения #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 книги Подпишись, и получай порцию годного контента каждый день!