➕ ➕ 7 способов сортировки массивов на примере С++ с иллюстрациями
В этой статье продемонстрируем на иллюстрациях, как работают алгоритмы сортировки: от простейшей пузырьковой до сложной древовидной кучи. Также определим сложность худших и лучших случаев, а код напишем на С++.
Статья
Зачем учить алгоритмы сортировки, если есть уже готовые методы сортировки?
Чтобы знать плюсы и минусы каждого алгоритма, понимать, как действительно он работает (а не просто копипастить) и какой алгоритм выбрать для конкретной задачи. Плюс изучение алгоритмов развивает мышление и профессиональный кругозор.
Как мне оперативно научиться применять алгоритмы?
Начни с бесплатного демо доступа к курсу «Алгоритмы и структуры данных», на котором junior и middle+ программисты смогут потренировать навыки применения алгоритмов и сгенерировать идеальные решения сложных задач в сообществе других разработчиков.
В этой статье продемонстрируем на иллюстрациях, как работают алгоритмы сортировки: от простейшей пузырьковой до сложной древовидной кучи. Также определим сложность худших и лучших случаев, а код напишем на С++.
Статья
Зачем учить алгоритмы сортировки, если есть уже готовые методы сортировки?
Чтобы знать плюсы и минусы каждого алгоритма, понимать, как действительно он работает (а не просто копипастить) и какой алгоритм выбрать для конкретной задачи. Плюс изучение алгоритмов развивает мышление и профессиональный кругозор.
Как мне оперативно научиться применять алгоритмы?
Начни с бесплатного демо доступа к курсу «Алгоритмы и структуры данных», на котором junior и middle+ программисты смогут потренировать навыки применения алгоритмов и сгенерировать идеальные решения сложных задач в сообществе других разработчиков.
Forwarded from Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Готов создать игру, от которой не оторвешься? Давай вместе сделаем Amazing Frogs — убийцу Тетриса на Python! Тут тебе и падающие блоки, и взрывающиеся цвета, и хитрая механика. Запасайся кофе, открывай IDE, и поехали превращать код в игровое безумие!
👉 Ссылка на статью
👉 Ссылка на статью
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Простой способ объединения словарей
Объединение словарей — это распространенная задача в программировании на Python. Существует множество методов для выполнения этой операции, но до выхода Python 3.9 они были довольно неудобными.
С выходом Python 3.9 мы получили изящный способ слияния словарей — использование операторов объединения.
Как видно из приведенного примера, теперь достаточно использовать оператор | для объединения двух различных словарей. Кроме того, этот оператор также поддерживает объединение «на месте».
Объединение словарей — это распространенная задача в программировании на Python. Существует множество методов для выполнения этой операции, но до выхода Python 3.9 они были довольно неудобными.
С выходом Python 3.9 мы получили изящный способ слияния словарей — использование операторов объединения.
Как видно из приведенного примера, теперь достаточно использовать оператор | для объединения двух различных словарей. Кроме того, этот оператор также поддерживает объединение «на месте».
Что делает метод isalpha()?
Метод isalpha() — это строковый метод, который проверяет, состоит ли строка исключительно из буквенных символов. Он возвращает True, если все символы в строке являются буквами, и False в противном случае.
Как показано в приведенном примере, первая строка состоит только из букв, поэтому метод isalpha() возвращает True. В то время как во второй строке присутствуют символы, не являющиеся буквами (например, запятая и восклицательный знак), что приводит к возвращению False.
Метод isalpha() — это строковый метод, который проверяет, состоит ли строка исключительно из буквенных символов. Он возвращает True, если все символы в строке являются буквами, и False в противном случае.
Как показано в приведенном примере, первая строка состоит только из букв, поэтому метод isalpha() возвращает True. В то время как во второй строке присутствуют символы, не являющиеся буквами (например, запятая и восклицательный знак), что приводит к возвращению False.
Что делает total_ordering из functools?
Декоратор total_ordering из модуля functools предназначен для упрощения реализации полного сравнения объектов в Python. Он автоматически создает методы сравнения (__lt__, __le__, __gt__, __ge__), если в классе уже определены один или несколько из них, а также метод __eq__.
Важно отметить:
— Декоратор total_ordering не заменяет методы сравнения, которые уже реализованы в классе или его суперклассах.
— Если класс наследует от другого класса, который уже использует total_ordering, необходимо явно указать методы сравнения в наследуемом классе.
Декоратор total_ordering из модуля functools предназначен для упрощения реализации полного сравнения объектов в Python. Он автоматически создает методы сравнения (__lt__, __le__, __gt__, __ge__), если в классе уже определены один или несколько из них, а также метод __eq__.
Важно отметить:
— Декоратор total_ordering не заменяет методы сравнения, которые уже реализованы в классе или его суперклассах.
— Если класс наследует от другого класса, который уже использует total_ordering, необходимо явно указать методы сравнения в наследуемом классе.
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
job.proglib.io
Вакансии в медиа «Библиотека программиста»
Количество проектов в редакции постоянно растет, так что нам всегда нужны специалисты
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
🚀 Как ускорить распределенные системы: 8 стратегий снижения времени ожидания
Высокая latency — это скрытый враг, превращающий приложение в тормозящую телегу. Особенно в распределённых системах, где данные путешествуют между серверами и каждая задержка становится катастрофой. Знаете ли вы, какие 8 стратегий помогут превратить "задумчивое" приложение в настоящего чемпиона?
Что эффективнее: кэшировать, сжимать или оптимизировать запросы к базе? А что, если правильный ответ — балансировка нагрузки или вообще CDN?
💡 Найдите недостающий элемент в вашем стеке и максимально ускорьте свои приложения.
🔗 Читать статью
🔗 Зеркало
Высокая latency — это скрытый враг, превращающий приложение в тормозящую телегу. Особенно в распределённых системах, где данные путешествуют между серверами и каждая задержка становится катастрофой. Знаете ли вы, какие 8 стратегий помогут превратить "задумчивое" приложение в настоящего чемпиона?
Что эффективнее: кэшировать, сжимать или оптимизировать запросы к базе? А что, если правильный ответ — балансировка нагрузки или вообще CDN?
💡 Найдите недостающий элемент в вашем стеке и максимально ускорьте свои приложения.
🔗 Читать статью
🔗 Зеркало
Forwarded from Proglib.academy | IT-курсы
📈 Почему Big data так быстро развивается?
Хотите получить востребованную и высокооплачиваемую профессию. Начните с понимания, куда движется индустрия. В нашей статье поговорим о Big Data — одном из самых горячих и перспективных направлений в IT.
🔗 Ссылка
Хотите получить востребованную и высокооплачиваемую профессию. Начните с понимания, куда движется индустрия. В нашей статье поговорим о Big Data — одном из самых горячих и перспективных направлений в IT.
🔗 Ссылка
Что такое синхронный код?
Синхронный код — это код, который выполняется последовательно, шаг за шагом, и блокирует выполнение других задач до его завершения. Это означает, что если в вашей программе есть функция, которая требует много времени для выполнения, то выполнение всей программы приостановится до тех пор, пока эта функция не завершит свою работу.
Исполнение синхронного кода может занять значительное время и привести к проблемам с производительностью, особенно когда код выполняет блокирующие операции, такие как чтение и запись файлов, сетевые запросы или поиск данных в базе данных.
Синхронный код — это код, который выполняется последовательно, шаг за шагом, и блокирует выполнение других задач до его завершения. Это означает, что если в вашей программе есть функция, которая требует много времени для выполнения, то выполнение всей программы приостановится до тех пор, пока эта функция не завершит свою работу.
Исполнение синхронного кода может занять значительное время и привести к проблемам с производительностью, особенно когда код выполняет блокирующие операции, такие как чтение и запись файлов, сетевые запросы или поиск данных в базе данных.
Forwarded from DIGITALRAZOR
Что будет, если DigitalRazor объединится с Proglib Academy? Правильно! Новый розыгрыш.
Условия:
Подпишитесь на DigitalRazor;
Подпишитесь на «Библиотеку программиста»;
Нажмите кнопку «Участвовать» под этим постом.
Призы:
1-е место: 27-дюймовый монитор;
2, 3 и 4-е место: сертификат номиналом 20 000 рублей на ИТ-курсы от Proglib Academy;
5-е место: геймерская клавиатура + коврик на выбор.
Призы разыграем 1 декабря в 20:00 (МСК).
Доставка призов возможна только по городам России и Белоруссии.
Proglib Academy создаёт онлайн-курсы для программистов, помогает получить востребованные навыки и построить успешную карьеру в IT.
Игровые компьютеры и рабочие станции DigitalRazor — это качественная сборка, топовое железо и эффектный дизайн.
Регламент розыгрыша
Условия:
Подпишитесь на DigitalRazor;
Подпишитесь на «Библиотеку программиста»;
Нажмите кнопку «Участвовать» под этим постом.
Призы:
1-е место: 27-дюймовый монитор;
2, 3 и 4-е место: сертификат номиналом 20 000 рублей на ИТ-курсы от Proglib Academy;
5-е место: геймерская клавиатура + коврик на выбор.
Призы разыграем 1 декабря в 20:00 (МСК).
Доставка призов возможна только по городам России и Белоруссии.
Proglib Academy создаёт онлайн-курсы для программистов, помогает получить востребованные навыки и построить успешную карьеру в IT.
Игровые компьютеры и рабочие станции DigitalRazor — это качественная сборка, топовое железо и эффектный дизайн.
Регламент розыгрыша
☄️ Проверь себя
Хочешь узнать, насколько ты прокачан в разработке? Тест для айтишников, чтобы проверить знания. Отличный способ отвлечься и сравнить результаты с друзьями!
👉 Пройти
Хочешь узнать, насколько ты прокачан в разработке? Тест для айтишников, чтобы проверить знания. Отличный способ отвлечься и сравнить результаты с друзьями!
👉 Пройти
Можно ли добавить статическую типизацию в Python?
Mypy — это инструмент для статической типизации в Python, который добавляет дополнительный уровень проверки типов в ваш код. Это позволяет выявлять и предотвращать ошибки, связанные с типами данных, еще на этапе разработки, до запуска программы.
Статическая типизация подразумевает аннотирование типов для переменных, аргументов функций и возвращаемых значений в вашем коде. Эти аннотации помогают Mypy понять, какие типы ожидаются для каждой переменной и выражения.
Mypy осуществляет проверку типов на основе указанных аннотаций, анализируя код на соответствие заявленным типам. В случае обнаружения несоответствий Mypy выдает ошибки или предупреждения, указывая на конкретные места, где возникла проблема.
Такой подход способствует повышению надежности и читаемости кода. Аннотации типов делают код более понятным и служат документированием ожидаемой структуры данных, что упрощает совместную работу в команде.
Mypy — это инструмент для статической типизации в Python, который добавляет дополнительный уровень проверки типов в ваш код. Это позволяет выявлять и предотвращать ошибки, связанные с типами данных, еще на этапе разработки, до запуска программы.
Статическая типизация подразумевает аннотирование типов для переменных, аргументов функций и возвращаемых значений в вашем коде. Эти аннотации помогают Mypy понять, какие типы ожидаются для каждой переменной и выражения.
Mypy осуществляет проверку типов на основе указанных аннотаций, анализируя код на соответствие заявленным типам. В случае обнаружения несоответствий Mypy выдает ошибки или предупреждения, указывая на конкретные места, где возникла проблема.
Такой подход способствует повышению надежности и читаемости кода. Аннотации типов делают код более понятным и служат документированием ожидаемой структуры данных, что упрощает совместную работу в команде.
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Напоминаем: у нас можно (и нужно) купить рекламу
→ Более 60 телеграм-каналов по всем направлениям IT
→ Почти 1,2 миллиона аудитории
→ Собственное медиа и сайт с DAU 25 000 — можем усилить продвижение
→ Классные email-рассылки
→ И, конечно же, крутые контент-менеджеры, которые сделают нативную интеграцию/придумают виральный пост/реализуют любые контентные предпочтения
Для заказа пишите сюда: @proglib_adv
→ Более 60 телеграм-каналов по всем направлениям IT
→ Почти 1,2 миллиона аудитории
→ Собственное медиа и сайт с DAU 25 000 — можем усилить продвижение
→ Классные email-рассылки
→ И, конечно же, крутые контент-менеджеры, которые сделают нативную интеграцию/придумают виральный пост/реализуют любые контентные предпочтения
Для заказа пишите сюда: @proglib_adv