Часть II. Начала дискретной математики. SQL, Комбинаторика, Тервер за 15 минут. SQL, EBNF, XPATH в 480 LOC
Для строительства компиляторов, нам нужны начала математики. Из них, как мы убедимся, проистекает добрая половина понимания и всех наших работ.
В частности, без начал не понять лямбда-исчисление Чёрча, которое мы рассмотрим и применим на этапе работы с AST.
https://habr.com/ru/articles/1055010/
Алгоритмы и Структуры данных
Для строительства компиляторов, нам нужны начала математики. Из них, как мы убедимся, проистекает добрая половина понимания и всех наших работ.
В частности, без начал не понять лямбда-исчисление Чёрча, которое мы рассмотрим и применим на этапе работы с AST.
https://habr.com/ru/articles/1055010/
Алгоритмы и Структуры данных
Почему интервью для разрабов — такое непроходимое говно, и что с этим делать?
Доброго утречка. Прогреемся?
Мое мнение не отражает позицию какой бы то ни было компании. Все совпадения с вашими нанимающими менеджерами случайны. Мой бывший Director Title в одном из топ-трех русскоговорящих бигтехов никакого отношения к высказанному не имеет и совпадения с ним тоже случайны. Кто захочет — при желании найдет, где и чем я занимался последние 10 лет и почему мое мнение имеет ценность.
Если вы не знали, откуда на собесах для джейсоноукладчиков взялась сортировка пузырьком, сегодня узнаете. Поехали!
https://habr.com/ru/articles/1055116/
Алгоритмы и Структуры данных
Доброго утречка. Прогреемся?
Мое мнение не отражает позицию какой бы то ни было компании. Все совпадения с вашими нанимающими менеджерами случайны. Мой бывший Director Title в одном из топ-трех русскоговорящих бигтехов никакого отношения к высказанному не имеет и совпадения с ним тоже случайны. Кто захочет — при желании найдет, где и чем я занимался последние 10 лет и почему мое мнение имеет ценность.
Если вы не знали, откуда на собесах для джейсоноукладчиков взялась сортировка пузырьком, сегодня узнаете. Поехали!
https://habr.com/ru/articles/1055116/
Алгоритмы и Структуры данных
Telegram
Data Science: Алгоритмы и Структуры данных
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Быстрые и компактные структуры данных для RMQ
Я собрал несколько практических наработок и сделал из них два очень компактных и быстрых варианта:
вариант с дополнительных бит, которому иногда нужно обращаться к исходному массиву;
вариант с дополнительных бит, который отвечает на запросы без доступа к исходному массиву.
Обе реализации очень быстры на практике: на случайных запросах по массиву размера элементов они работают в среднем за – нс на запрос.
Для ориентира: туториал Codeforces по блочному RMQ описывает структуру, которая работает нс на запрос для массивов длины с 32-битными целыми числами, при этом используя дополнительных бит.
https://habr.com/ru/articles/1055008/
Алгоритмы и Структуры данных
Я собрал несколько практических наработок и сделал из них два очень компактных и быстрых варианта:
вариант с дополнительных бит, которому иногда нужно обращаться к исходному массиву;
вариант с дополнительных бит, который отвечает на запросы без доступа к исходному массиву.
Обе реализации очень быстры на практике: на случайных запросах по массиву размера элементов они работают в среднем за – нс на запрос.
Для ориентира: туториал Codeforces по блочному RMQ описывает структуру, которая работает нс на запрос для массивов длины с 32-битными целыми числами, при этом используя дополнительных бит.
https://habr.com/ru/articles/1055008/
Алгоритмы и Структуры данных
Codeforces
Range minimum query in O(1) with linear time construction
TL; DR
❤1
У нового клиента нет эмоций? Рассмотрим перспективы маркетинга на 2027-2028 год
Я занимаюсь маркетингом и политическими технологиями достаточно долго, чтобы пережить несколько обещанных концов профессии: наружную рекламу хоронили после появления интернета, телевидение — после таргета, таргет — после инфлюенсеров, а инфлюенсеров теперь хоронят люди, которые ещё вчера продавали курсы по работе с ними. Отрасль всякий раз не умирала, а меняла носитель, сохраняя главное — борьбу за человеческое внимание и право объяснить человеку, почему выбрать нужно именно нас.
Сейчас меняется не носитель. Между брендом и деньгами встал новый участник — алгоритм, который ищет, сравнивает, составляет короткий список, а иногда уже оформляет покупку. Это не ещё один инструмент маркетолога и не новый рекламный канал. Это новый клиент: он не испытывает эмоций, но умеет вычислять наши; не верит обещаниям, но использует их как данные; не любит бренды, но способен решить, какие из них вообще увидит человек.
Ниже — девять сдвигов, которые я разбираю в «Фабрике смыслов 2.0». Я называю их сдвигами, а не прогнозами, потому что OpenAI уже превращает выбор товара в отдельное исследование, Google строит протоколы агентной торговли, а поисковые системы учатся не только находить страницы, но и собирать из них ответ. Будущее, как обычно, наступило в бета-версии и с мелким шрифтом в пользовательском соглашении. Книга готовится к выходу, поэтому публикую не рекламный анонс, а рабочий скелет концепции. Хабр для этого подходит лучше площадок, где автору принято сообщать, что он «поднял важную тему»: здесь быстрее объяснят, в каком месте важная тема не сходится с документацией.
https://habr.com/ru/articles/1070762/
Алгоритмы и Структуры данных
Я занимаюсь маркетингом и политическими технологиями достаточно долго, чтобы пережить несколько обещанных концов профессии: наружную рекламу хоронили после появления интернета, телевидение — после таргета, таргет — после инфлюенсеров, а инфлюенсеров теперь хоронят люди, которые ещё вчера продавали курсы по работе с ними. Отрасль всякий раз не умирала, а меняла носитель, сохраняя главное — борьбу за человеческое внимание и право объяснить человеку, почему выбрать нужно именно нас.
Сейчас меняется не носитель. Между брендом и деньгами встал новый участник — алгоритм, который ищет, сравнивает, составляет короткий список, а иногда уже оформляет покупку. Это не ещё один инструмент маркетолога и не новый рекламный канал. Это новый клиент: он не испытывает эмоций, но умеет вычислять наши; не верит обещаниям, но использует их как данные; не любит бренды, но способен решить, какие из них вообще увидит человек.
Ниже — девять сдвигов, которые я разбираю в «Фабрике смыслов 2.0». Я называю их сдвигами, а не прогнозами, потому что OpenAI уже превращает выбор товара в отдельное исследование, Google строит протоколы агентной торговли, а поисковые системы учатся не только находить страницы, но и собирать из них ответ. Будущее, как обычно, наступило в бета-версии и с мелким шрифтом в пользовательском соглашении. Книга готовится к выходу, поэтому публикую не рекламный анонс, а рабочий скелет концепции. Хабр для этого подходит лучше площадок, где автору принято сообщать, что он «поднял важную тему»: здесь быстрее объяснят, в каком месте важная тема не сходится с документацией.
https://habr.com/ru/articles/1070762/
Алгоритмы и Структуры данных
Telegram
Data Science: Алгоритмы и Структуры данных
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Сопоставление каталогов продукции: автоматический массовый подбор с использованием токенизации
Задача широко знакома в узких кругах: наш каталог товаров встречается с каталогом контрагента — по сути одни и те же позиции, но названы по-разному. Надо найти совпадения и предоставить коллегам список подходящих наших артикулов для каждой их позиции.
В разобранном ниже случае это картриджи: 22 тысячи записей у контрагента против сотен тысяч наших номенклатур. Для такой задачи матерый программист берёт Elasticsearch, алгоритмы нечёткого поиска и тратит много времени, иногда в меру матерясь. Здесь подбор ведется с помощью токенизации, запросами в стиле no-code и без ИИ.
https://habr.com/ru/articles/1055368/
Алгоритмы и Структуры данных
Задача широко знакома в узких кругах: наш каталог товаров встречается с каталогом контрагента — по сути одни и те же позиции, но названы по-разному. Надо найти совпадения и предоставить коллегам список подходящих наших артикулов для каждой их позиции.
В разобранном ниже случае это картриджи: 22 тысячи записей у контрагента против сотен тысяч наших номенклатур. Для такой задачи матерый программист берёт Elasticsearch, алгоритмы нечёткого поиска и тратит много времени, иногда в меру матерясь. Здесь подбор ведется с помощью токенизации, запросами в стиле no-code и без ИИ.
https://habr.com/ru/articles/1055368/
Алгоритмы и Структуры данных
Telegram
Data Science: Алгоритмы и Структуры данных
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
35 вопросов для собеседований по RL в 2026 году
Уже который раз я наблюдаю одну и ту же картину: человек проходит в аспирантуру, но затем почти сразу же во время весенней волны найма устраивается на высокооплачиваемую должность в отрасли. Меня подобное натолкнуло на мысль сразу пойти работать в индустрию.
Поэтому я поискал по Zhihu и прошёлся примерно по всем рассказам о собеседованиях, связанным с обучением с подкреплением (reinforcement learning), сопоставил их со свежими обсуждениями и собственными наблюдениями, а затем подготовил из этого выжимку на 35 самых интересных вопросов. Считайте получившееся своего рода бенчмарком для собеседований по RL.
https://habr.com/ru/articles/1055446/
Алгоритмы и Структуры данных
Уже который раз я наблюдаю одну и ту же картину: человек проходит в аспирантуру, но затем почти сразу же во время весенней волны найма устраивается на высокооплачиваемую должность в отрасли. Меня подобное натолкнуло на мысль сразу пойти работать в индустрию.
Поэтому я поискал по Zhihu и прошёлся примерно по всем рассказам о собеседованиях, связанным с обучением с подкреплением (reinforcement learning), сопоставил их со свежими обсуждениями и собственными наблюдениями, а затем подготовил из этого выжимку на 35 самых интересных вопросов. Считайте получившееся своего рода бенчмарком для собеседований по RL.
https://habr.com/ru/articles/1055446/
Алгоритмы и Структуры данных
Telegram
Data Science: Алгоритмы и Структуры данных
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Уже очевидно, что ВАЙБКОДИНГ — главный навык ближайших лет
Посмотрите сами. ИИ уже забирает на себя работу целых команд: пишет код, закрывает задачи джунов и позволяет стартапам запускать продукты в 2–3 раза меньшим составом. То, на что раньше нужны были несколько разработчиков, сегодня всё чаще делает один человек с ИИ-агентами.
И это только начало. Те, кто освоит вайбкодинг сейчас, смогут быстрее запускать проекты, автоматизировать огромный объём работы, увереннее конкурировать на рынке и зарабатывать больше тех, кто продолжает делать всё вручную.
Начать с нуля поможет канал Вайб-кодинг. Там ребята круглосуточно мониторят более 320 российских и зарубежных источников и публикуют только главное: релизы, инструменты, гайды, курсы и практические кейсы.
Подписывайтесь, нас уже 59 тысяч: @vibecoding_tg
Посмотрите сами. ИИ уже забирает на себя работу целых команд: пишет код, закрывает задачи джунов и позволяет стартапам запускать продукты в 2–3 раза меньшим составом. То, на что раньше нужны были несколько разработчиков, сегодня всё чаще делает один человек с ИИ-агентами.
И это только начало. Те, кто освоит вайбкодинг сейчас, смогут быстрее запускать проекты, автоматизировать огромный объём работы, увереннее конкурировать на рынке и зарабатывать больше тех, кто продолжает делать всё вручную.
Начать с нуля поможет канал Вайб-кодинг. Там ребята круглосуточно мониторят более 320 российских и зарубежных источников и публикуют только главное: релизы, инструменты, гайды, курсы и практические кейсы.
Подписывайтесь, нас уже 59 тысяч: @vibecoding_tg
В чем смысл жизни с точки зрения термодинамики?
Мне хорошо запомнилось видео, где автор рассказывал про то, что многие люди находят свою работу бредовой и никому не нужной. Осмысленность труда - важная часть психологического комфорта, от которого зависит в том числе и продуктивность процессов. Если ты не понимаешь, зачем ты что-то делаешь, тяжелее исправлять и предугадывать собственные ошибки, а также сохранять концентрацию. В наше время люди часто впадают в личностные кризисы, которые симптоматически совпадают с депрессией, и я считаю эту проблему крайне серьезной, потому что проходил её сам. Я пытался решить системные проблемы с мотивацией и желанием жить с помощью терапии разных типов, в том числе и с использованием препаратов, но основной вклад в это внесли фундаментальная философия и фундаментальная физика. Я склонен считать, что на дистанции такая призма восприятия может помочь всем, поэтому решил ей поделиться.
https://habr.com/ru/articles/1055788/
Алгоритмы и Структуры данных
Мне хорошо запомнилось видео, где автор рассказывал про то, что многие люди находят свою работу бредовой и никому не нужной. Осмысленность труда - важная часть психологического комфорта, от которого зависит в том числе и продуктивность процессов. Если ты не понимаешь, зачем ты что-то делаешь, тяжелее исправлять и предугадывать собственные ошибки, а также сохранять концентрацию. В наше время люди часто впадают в личностные кризисы, которые симптоматически совпадают с депрессией, и я считаю эту проблему крайне серьезной, потому что проходил её сам. Я пытался решить системные проблемы с мотивацией и желанием жить с помощью терапии разных типов, в том числе и с использованием препаратов, но основной вклад в это внесли фундаментальная философия и фундаментальная физика. Я склонен считать, что на дистанции такая призма восприятия может помочь всем, поэтому решил ей поделиться.
https://habr.com/ru/articles/1055788/
Алгоритмы и Структуры данных
Telegram
Data Science: Алгоритмы и Структуры данных
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ
Проект «Terminal» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны курсы, книги, полезные инструменты и практические тренажёры для всех разработчиков:
• Практические курсы и задания
• Книги и статьи известных авторов
• Полезные инструменты и ресурсы
• IT-новости и инсайды
Обучение по всем направлениям: SQL, Python, ML, Frontend, PHP, C++, Go, Git, Linux, QA, Java, Vibe-coding, InfoSec и др.
⌨️ подписаться
Проект «Terminal» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны курсы, книги, полезные инструменты и практические тренажёры для всех разработчиков:
• Практические курсы и задания
• Книги и статьи известных авторов
• Полезные инструменты и ресурсы
• IT-новости и инсайды
Обучение по всем направлениям: SQL, Python, ML, Frontend, PHP, C++, Go, Git, Linux, QA, Java, Vibe-coding, InfoSec и др.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Stream compaction на NEON. Векторизуем copy_if
Даны массивы
https://habr.com/ru/articles/1055904/
Алгоритмы и Структуры данных
Даны массивы
a и out. Нужно записать в out подряд, без пробелов, только те элементы a, которые удовлетворяют заданному условию. В статье — условие a[i] > threshold, a[i] ∈ (0, 1), threshold ∈ {0, 0.5, 1}.https://habr.com/ru/articles/1055904/
Алгоритмы и Структуры данных
Telegram
Data Science: Алгоритмы и Структуры данных
Мы не претендуем на оригинальность контента, мы лишь собираем материал из открытых источников.
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Ссылка: @Portal_v_IT
Сотрудничество, авторские права: @oleginc, @tatiana_inc
Канал на бирже: https://telega.in/c/structuredata
Iron Core. Часть 3: Бессмертная командная строка
Публикуем перевод третьей статьи из серии (первая часть, вторая), посвящённой информационным технологиям в авиаперевозках. Сегодня поговорим о режиме командной строки системы Amadeus, работа в которой опирается на язык, созданный для телетайпов. Этот язык до сих пор обеспечивает огромный процент бронирований билетов во всём мире — как тех, что выполняются различными агентствами, так и тех, что делаются посредством GDS.
https://habr.com/ru/companies/wunderfund/articles/1046431/
Алгоритмы и Структуры данных
Публикуем перевод третьей статьи из серии (первая часть, вторая), посвящённой информационным технологиям в авиаперевозках. Сегодня поговорим о режиме командной строки системы Amadeus, работа в которой опирается на язык, созданный для телетайпов. Этот язык до сих пор обеспечивает огромный процент бронирований билетов во всём мире — как тех, что выполняются различными агентствами, так и тех, что делаются посредством GDS.
https://habr.com/ru/companies/wunderfund/articles/1046431/
Алгоритмы и Структуры данных
Media is too big
VIEW IN TELEGRAM
Как работает сортировка вставками и чем она отличается от сортировки выбором
В видео разберём принцип работы алгоритма сортировки вставками и его ключевое отличие от сортировки выбором. Также покажем реализацию алгоритма на Python и наглядно разберём, как он сортирует элементы.
➡️ Смотреть видео
➡️ Скачать видео
Data Science: Алгоритмы и Структуры данных
В видео разберём принцип работы алгоритма сортировки вставками и его ключевое отличие от сортировки выбором. Также покажем реализацию алгоритма на Python и наглядно разберём, как он сортирует элементы.
Data Science: Алгоритмы и Структуры данных
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Вращение в AVL-деревьях
Двойные повороты - достаточно сложная тема, но я нашел достаточно хорошее объяснение этому. Обратите ваше внимание на картинку. В данном случае представлено вращение влево-вправо.
Поворот влево-вправо - это комбинация вращений влево, за которым следует вращение вправо.
Есть аналогичное вращение вправо-влево, только оно с точностью наоборот. Сначала вращение вправо, а после уже влево!
Data Science: Алгоритмы и Структуры данных
Двойные повороты - достаточно сложная тема, но я нашел достаточно хорошее объяснение этому. Обратите ваше внимание на картинку. В данном случае представлено вращение влево-вправо.
Поворот влево-вправо - это комбинация вращений влево, за которым следует вращение вправо.
Есть аналогичное вращение вправо-влево, только оно с точностью наоборот. Сначала вращение вправо, а после уже влево!
Data Science: Алгоритмы и Структуры данных
❤3👍1
Возвращаем прямой формат контента по тематике канала. Полностью пересмотрели подход к постам.
Надеемся, что вам будет полезно.
Надеемся, что вам будет полезно.
👍3🔥3
Алгоритмы машинного обучения
Данное видео поможет вам разобраться, какие проблемы есть в Machine Learning, и познакомит с различными алгоритмами.
Ключевые алгоритмы машинного обучения - это линейная регрессия, логистическая регрессия, дерево решений, случайный лес и алгоритм KNN.
Все алгоритмы представлены с простыми примерами и реализованы на языке Python.
➡️ Смотреть видео
➡️ Скачать видео
Data Science: Алгоритмы и Структуры данных
Данное видео поможет вам разобраться, какие проблемы есть в Machine Learning, и познакомит с различными алгоритмами.
Ключевые алгоритмы машинного обучения - это линейная регрессия, логистическая регрессия, дерево решений, случайный лес и алгоритм KNN.
Все алгоритмы представлены с простыми примерами и реализованы на языке Python.
Data Science: Алгоритмы и Структуры данных
Please open Telegram to view this post
VIEW IN TELEGRAM
Топ-10 алгоритмов машинного обучения
В машинном обучении есть нечто, называемое теоремой «No Free Lunch». Вкратце, в ней говорится, что ни один алгоритм не работает лучше всего для каждой проблемы, и это особенно важно для контролируемого обучения (т.е. predictive modeling).
➡️ Читать статью
Data Science: Алгоритмы и Структуры данных
В машинном обучении есть нечто, называемое теоремой «No Free Lunch». Вкратце, в ней говорится, что ни один алгоритм не работает лучше всего для каждой проблемы, и это особенно важно для контролируемого обучения (т.е. predictive modeling).
Data Science: Алгоритмы и Структуры данных
Please open Telegram to view this post
VIEW IN TELEGRAM
Задача: переместить нули в конец
Дан массив случайных чисел, необходимо переместить все нули данного массива в конец. Например, если задан массив 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: Алгоритмы и Структуры данных
Дан массив случайных чисел, необходимо переместить все нули данного массива в конец. Например, если задан массив 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: Алгоритмы и Структуры данных
🔥3
Алгоритм решения задачи
Есть куча способов решить данную задачу. Ниже я приведу простой и интересный способ решить ее.
Пройдитесь по заданному массиву слева направо. Во время обхода поддерживайте количество ненулевых элементов в массиве (к примеру в счетчике count). Для каждого ненулевого элемента gjvtcnbnt элемент в arrcount и увеличьте сам count.
После полного обхода все ненулевые элементы уже будут перемещены во внешний интерфейс и count устанавливается как индекс нулевого элемента. Теперь все что нам остается - запустить цикл, который формирует все оставшиеся элементы нулевыми от count до конца самого массива.
Data Science: Алгоритмы и Структуры данных
Есть куча способов решить данную задачу. Ниже я приведу простой и интересный способ решить ее.
Пройдитесь по заданному массиву слева направо. Во время обхода поддерживайте количество ненулевых элементов в массиве (к примеру в счетчике count). Для каждого ненулевого элемента gjvtcnbnt элемент в arrcount и увеличьте сам count.
После полного обхода все ненулевые элементы уже будут перемещены во внешний интерфейс и count устанавливается как индекс нулевого элемента. Теперь все что нам остается - запустить цикл, который формирует все оставшиеся элементы нулевыми от count до конца самого массива.
Data Science: Алгоритмы и Структуры данных
Настраиваем Python для машинного обучения на Windows
В этой статье рассказываем о возможностях Python для машинного обучения на Windows, описание дистрибутива Anaconda, процесс его установки и создание нейронной сети.
➡️ Читать статью
Data Science: Алгоритмы и Структуры данных
В этой статье рассказываем о возможностях Python для машинного обучения на Windows, описание дистрибутива Anaconda, процесс его установки и создание нейронной сети.
Data Science: Алгоритмы и Структуры данных
Please open Telegram to view this post
VIEW IN TELEGRAM
Решение задачи через один только проход
Да, эту задачу можно решить также и тупо одним проходом, нам снова понадобиться 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: Алгоритмы и Структуры данных
Да, эту задачу можно решить также и тупо одним проходом, нам снова понадобиться 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: Алгоритмы и Структуры данных
Двоичное дерево поиска
Двоичное дерево поиска(BST) - дерево, в котором все узлы следуют свойствам:
1. Левое поддерево узла имеет ключ, меньше или равный ключу его родительского узла
2. Правое поддерево узла имеет ключ больше, чем ключ родительского узла.
Таким образом дерево делит все свои поддеревью на два сегмента: левое и правое поддеревья. Есть еще одно определение данного дерева:
leftsubtree(keys) =< node(key) =< rightsubtree(keys)
Data Science: Алгоритмы и Структуры данных
Двоичное дерево поиска(BST) - дерево, в котором все узлы следуют свойствам:
1. Левое поддерево узла имеет ключ, меньше или равный ключу его родительского узла
2. Правое поддерево узла имеет ключ больше, чем ключ родительского узла.
Таким образом дерево делит все свои поддеревью на два сегмента: левое и правое поддеревья. Есть еще одно определение данного дерева:
leftsubtree(keys) =< node(key) =< rightsubtree(keys)
Data Science: Алгоритмы и Структуры данных