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

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

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

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

نمایش بیشتر
7 756
مشترکین
-124 ساعت
-37 روز
-2530 روز
آرشیو پست ها
Бинарный поиск на Python В этом видео вы узнаете, что такое алгоритм, алгоритм бинарного поиска, О-большое Перейти к просмотру [13:59]

🕵 Курс "Алгоритмы и структуры данных от А до Я" Курс посвящен изучению базовых алгоритмов и структур данных, знание которых
🕵 Курс "Алгоритмы и структуры данных от А до Я" Курс посвящен изучению базовых алгоритмов и структур данных, знание которых необходимо для эффективного решения разнообразных задач программирования. Рассматриваются различные алгоритмы сортировки, линейные структуры данных, такие как очереди и списки. Длительность курса: 4 урока Перейти к курсу

Рекурсия и сортировка Quick Sort простыми словами на JavaScript Если хотите разобраться, как устроена рекурсия и сортировка массива Quick Sort, то читайте статью ниже. В ней автор простыми словами разбирает эти алгоритмы на JavaScript. 👉Читать статью

Шаги решения любой задачи Нашел статью недавно и понимаю теперь где я косячил в самом начале. Никогда не пытайтесь сразу реша
Шаги решения любой задачи Нашел статью недавно и понимаю теперь где я косячил в самом начале. Никогда не пытайтесь сразу решать задачу оптимизированно. Или, что еще хуже, тупо не разбираясь в самой проблеме стараться ее зазубрить. Поверьте - это не выход и так вы ничему не научитесь. В статье описываются шаги того, что надо сделать приступая к любой проблеме: 1. Понять саму проблему 2. Выбрать общее направление по решению проблемы. 3. Подумайте что вы можете сделать (используя ваш предыдущий опыт) 4. Попробуйте найти, что вы не можете сделать. А также в этом кейсе подумайте и над исключительными ситуациями, которые могут произойти. 5. Только теперь подумайте над тем, что вы можете улучшить в текущем решении.

Экспоненциальный поиск или Finger Search Finger Search ищет элемент в отстортированном массиве, перескакивая 2 ^ i элеентов н
Экспоненциальный поиск или Finger Search Finger Search ищет элемент в отстортированном массиве, перескакивая 2 ^ i элеентов на каждой итерации, где i представляет значение переменной управления циклом. После идет проверка: присутствует ли элемент поиска между последним и текущим переходом. Как это работает? 1. Проходите по элементам массива по 2 ^ i за один раз, выполняя поиск условия:
Array[2 ^ (i - 1)] < valueWanted < Array[ 2 ^ i]
Если 2 ^ i больше, чем длина массива, установите верхнюю границу равной длине массива 2. Выполните двоичный поиск между массивами Array[2 ^ (i - 1)] и Array[2 ^ i]

Знакомим с разработкой и учим думать, как программист. Подготовительный 14-дневный курс по Python для новичков 🐍 Даём только
Знакомим с разработкой и учим думать, как программист. Подготовительный 14-дневный курс по Python для новичков 🐍 Даём только мясную и прикладную информацию. Никакой воды и траты времени! По окончании вы уже владеете базовым знанием языка. Вас ждет 69 уроков теории и практики прямо в браузере, вебинары, лайвкодинг и первая собственная программа на Python, написанная под руководством опытного наставника. Начинаем 9 ноября, вы с нами?

Алгоритм Interpolation Search 1. В цикле вычисляем значение позиции (pos), используя формулу, что обсуждали в предпоследнем п
Алгоритм Interpolation Search 1. В цикле вычисляем значение позиции (pos), используя формулу, что обсуждали в предпоследнем посте. 2. Если есть совпадения, то вернуть индес элемента и выйти из цикла 3. Если элемент меньше, чем позиционный элемент, вычислить положение для левого подмассива, в противном случае в правом подмассиве 4. Повторять, пока не найдется совпадение или пока подмассив не уменьшится до нуля.

Выбор позиции для поиска в Interpolation Search Чтобы разделить массив на две части, мы используем следующую формулу: mid = L
Выбор позиции для поиска в Interpolation Search Чтобы разделить массив на две части, мы используем следующую формулу:
mid = Lo + ((Hi - Lo) / (A[Hi] - A[Lo])) * (X - A[Lo]), где
A - наш искомый массив X - элемент, который мы ищем Lo - наименьший индекс массива Hi - наивысший индекс массива An - значение, хранящееся под индексом n в списке. Если средний элемент больше, чем искомый элемент, то позиция снова вычисляется, но уже в подмассиве. Это продолжается до тех пор, пока размер подмассива не уменьшится до нуля

Interpolation Sort Имея отсортированный массив нам надо написать функцию поиска элемента. Линейный поиск сделает это за время
Interpolation Sort Имея отсортированный массив нам надо написать функцию поиска элемента. Линейный поиск сделает это за время O(n) , Jump Search - O(√ n), а бинарный за O(log n). Поиск с интерполяцией (Interpolation Sort) является улучшением по сравнением с бинарным поиском для экземпляров, где значения в отсортированном массиве равномерно распределены. Двоичный поиск всегда переходит к центру. Interpolation Sort может идти в разные места в соответствии с значением ключа, по которому выполняется поиск. Например, если значение ближе к последнему элементу, поиск выгоднее начать с конца. Сложность выйдет O(log(log n)). О том как выбрать значения ключа, поговорим в следующем посте.

📣 Распродажа IT-курсов в Академии ТОР! ✅ До конца недели скидка 50% на первые два месяца обучения на курсы • Тестирование (QA) • Графический дизайн • Python-разработчик • Java-разработчик ✅ До конца месяца 20% скидка на все обучение. ✅ До конца месяца 25% скидка на детское обучение. 🔥промокод TGSUPER Связаться с менеджером

Когда стоит использовать Jump Search Бинарный поиск - лучше, чем Jump Search. Для чего же тогда использовать Jump Search. У н
Когда стоит использовать Jump Search Бинарный поиск - лучше, чем Jump Search. Для чего же тогда использовать Jump Search. У него есть одно преимущество перед бинарным поиском: мы возвращаемся назад только один раз. Для бинарного поиска может потребоваться до O(logN) переходов в ситуации, когда мы захотим найти элемент, который является наименьшим или даже меньше чем наименьший.

Занимаетесь кодингом, разрабатываете и оптимизируете проекты, интересуетесь грамотными подходами их проектирования? Тогда вам к нам! На __Just code IT__ вы узнаете много крутого из мира программирования😏 — Обсуждения тонкостей языков, алгоритмов, ИБ, компиляторов; — Посты про качество кода и системное программирование; — Дайджесты в сфере прикладного IT и научно-популярные статьи. Ловите несколько горячих постов про архитектуру и механизмы работы проектов: ● ОС для OISC-процессоров; ● Первое знакомство с языком ассемблера; ● Поддержка микроядер в железе; ● Хардкорные инструменты для WEB-разработки. Переходите __по ссылке__, чтобы не пропустить ни одного полезного материала🔥

Оптимально выбрать блок для пропуска в Jump Search В худшем случае мы должны делать n/m перехов. Где n - длина массива, а m -
Оптимально выбрать блок для пропуска в Jump Search В худшем случае мы должны делать n/m перехов. Где n - длина массива, а m - длина размера перехода. Если проверенное значение больше, чем искомый элемент, мы выполним m-1 сравнений больше, так как будем использовать линейный поиск. Общее количество сравнений в наихудшем случае будет ((n / m) + m - 1). Значение функции ((n / m) + m - 1) будет минимальным, когда m = √n. Следовательно, лучший размер шага будет являться m = √n

Jump Search Как и бинарный поиск, поиск с переходом(прыжком) выполним только для отсортированных массивов. Основная идея сост
Jump Search Как и бинарный поиск, поиск с переходом(прыжком) выполним только для отсортированных массивов. Основная идея состоит в том, чтобы проверять меньшее количество элементов, перескакивая вперед на фиксированное количество шагов, пропуская их. Рассмотрим массив - 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, длина - 16. Размер блока возьмем - 4. Jump Search найдет значение 55 с помощью следующих шагов: 1. Переход от индекса 0 к индексу 4 2. Переход с индекса 4 к индеку 8 3. Перейсти с индекса 8 к индексу 12 4. Поскольку элемент с индексом 12 больше 55, мы вернемся на шаг назад. Переходим на индекс 8 5. Выполняем линейный поиск с индекса 8, чтобы получить элемент 55

Операция поиска в Splay Tree Операция поиска в Splay Tree выполняет стандартный поиск BST, помимо поиска, также происходит и
Операция поиска в Splay Tree Операция поиска в Splay Tree выполняет стандартный поиск BST, помимо поиска, также происходит и перемещение узла в корень. Если поиск успешный, то найденный узел перемещается и становится корневым. В противном случае последний узел, к которому было обращение (до достижения NULL) - перемещается в корень. Доступ к узлу 1. Через корень 2. Узел является дочерним по отношению к корню, либо левым потомком (применим правое вращение), либо правм потомком 3. Другие 2, которые расмотрим в будущем

4PDA теперь в Telegram! 4PDA – крупнейший в рунете тематический ресурс, посвященный технологиям, приложениям и кодингу. Специ
4PDA теперь в Telegram! 4PDA – крупнейший в рунете тематический ресурс, посвященный технологиям, приложениям и кодингу. Специально для программистов у них появился официальный канал в телеграм, где вы увидите сливы платных курсов, интересные статьи и много другого! Подписывайтесь: @4pda_forum

Расширяющее (косое) дерево - Splay Tree Основная идея Splay Tree состоит в том, чтобы перенести элемент, к которому недавно о
Расширяющее (косое) дерево - Splay Tree Основная идея Splay Tree состоит в том, чтобы перенести элемент, к которому недавно осуществлен поиск(или доступ) в корень дерева. Тем самым дать возможность достучаться к нему повторно за O(1). Представьте себе ситуацию, когда у нас есть миллионы ключей, и лишь некоторые из них используются чаще других, что кстати говоря весьма вероятно во многих приложениях. Все операции с Splay Tree выполняются в среднем за O(log N) времени, где N - количество записей в дереве. В ближайшие дни рассмотрим основные операции над данным деревом.

Видеокурсы — лучший способ выучить язык программирования Вот каналы, которые собирают лучшие видеокурсы: Python Expert – 585
Видеокурсы — лучший способ выучить язык программирования Вот каналы, которые собирают лучшие видеокурсы: Python Expert – 585 видео про Python с нуля, Backend, Flask, Django, Data Science, Разработка Telegram ботов, Machine Learning. ITLES – 1764 видео по Frontend, Java, Git, C#, C++, PHP, SQL, Figma, CSS, Linux, Data Science, Верстка, GameDev. Скачивать ничего не нужно — все выложили на YouTube с доступом по ссылке.

Реализация вставки в Trie (Python)
Реализация вставки в Trie (Python)

Курс по python-разработке для тех, кто хочет сменить профессию. Неважно, сколько вам лет и есть ли у вас опыт в IT — за 9 месяцев учёбы освоить разработку сможет каждый. Это возможно, если правильно выстроить программу и усердно заниматься. Упорство зависит от вас, а о качестве материалов позаботилась команда Яндекс Практикума. — Программа основана на реальных требованиях работодателей к младшим специалистам. — Интерактивный тренажёр помогает освоить теорию и закрепить её в тестах. — Практика идёт на учебных проектах для портфолио: от чат-бота и сайта-отзовика до соцсети и многофункционального сервиса. А ещё на курсе много работы с опытными специалистами: — наставники-разработчики разбирают сложные темы на живых вебинарах. — код-ревьюеры проверяют проекты и подсказывают, как их улучшить. — кураторы помогают с организацией и расписанием. — карьерный центр учит работать с резюме, мотивационными письмами, портфолио и собеседованиями. 78% наших выпускников находят работу в новой сфере. Они берут проекты на фрилансе, устраиваются в стартапы и крупные компании — Яндекс, ВТБ, МТС, Перекрёсток, Playrix, Сбер и другие. Посмотреть, как учит Практикум, можно в бесплатной вводной части курса →