Точка входа в программирование
21.4K subscribers
902 photos
163 videos
1 file
2.44K links
Фундаментальные знания по основам программирования

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Оценка сложности алгоритма

Алгоритмы оцениваются по двум главным критериям — количеству занимаемой памяти и времени исполнения. Однако в алгоритмы можно подать различные входящие массивы данных, от чего время выполнения и количество памяти нельзя выразить одним числом. Поэтому для оценки сложности алгоритмов используют нотацию Big O.

Подробнее о Big O и оценке сложности алгоритмов:

https://youtu.be/ZRdOb4yR0kk

#алгоритмы
Умножение и деление сдвигом

В программировании существует специальная операция — арифметический сдвиг. Он позволяет существенно быстрее умножить или поделить число на степени двойки, чем обычные операции умножения и деления. Весь секрет — в строении двоичных чисел.

Как работает левый (<<) и правый (>>) арифметический сдвиг, хорошо объясняется в лекции:

https://youtu.be/_pLHvK-X4qg

#алгоритмы
Возврат нескольких значений из функции Python

Чтобы в Python вернуть из функции сразу несколько значений, нужно воспользоваться структурами данных. Так вы можете передать из функции данные в виде списка, кортежа или словаря.

Как это сделать, объясняется в статье:

https://pythonist.ru/vozvrat-neskolkih-znachenij-iz-funkczii/

#python #алгоритмы
Курс лекций по алгоритмам от Школы анализа данных

Хотите научиться работать с большими наборами данных? Без крепких знаний алгоритмов никуда.

Восполнить «пробелы» в знаниях помогут записи лекций из Школы анализа данных (ШАД) «Яндекса». В них вы узнаете как о теоретических (модели вычислений, иммутабельность и персистентность, хеширование и не только), так и практических (задача о кратчайших путях, RMC, LCA) аспектах алгоритмов.

Лекции доступны бесплатно на YouTube.

#алгоритмы #курсы
Алгоритм быстрой сортировки: объяснение и реализация на C#

QuickSort (или быстрая сортировка) является одним из самых популярных алгоритмов сортировки.

Если вы ещё не разобрались, по каким принципам работает быстрая сортировка, то рекомендуем посмотреть видео:

https://youtu.be/DmFXdwy_mH0

В нём не только объясняются концепции QuickSort, но и показана визуализация алгоритма и его реализация на языке C#.

#csharp #алгоритмы #сортировки
Алгоритмическая секция на собеседовании: на что обращать внимание?

На собеседовании вам могут дать алгоритмические задачи. Вам предстоит не только написать корректный код, но и объяснить, как он работает. При этом на решение отводится ограниченное время.

Стрессовая ситуация, не так ли? Но советы из статьи могут помочь в решении алгоритмических задач на собеседованиях:

https://habr.com/ru/company/avito/blog/662922/

#алгоритмы #собеседование
This media is not supported in your browser
VIEW IN TELEGRAM
Алгоритмы сортировки: зачем они нужны?

Работая с большим массивом данных, с помощью сортировки можно разместить элемент заданного массива в некотором определённом порядке. Например, в интернет-магазине вы можете отсортировать товар по цене, популярности или категории.

Одни алгоритмы помогают сортировать объекты с учётом вводных данных, другие — найти элемент быстрее.

Подробнее здесь:

https://tproger.ru/articles/zachem-nuzhny-algoritmy-sortirovki/

#алгоритмы
Задачи на алгоритмы и их решения

The Algorithms — проект с открытым исходным кодом, созданный группой разработчиков для понимания структур данных и алгоритмов на разных языках. Любой желающий может внести свой вклад в проект или помочь решить задачу других:

1. Java
2. JavaScript
3. Python
4. Go

#алгоритмы
Структуры данных и алгоритмы: топ-30

В этой статье собраны 15 наиболее полезных структур данных и 15 наиболее важных алгоритмов, которые могут помочь вам успешно пройти собеседования и улучшить свои навыки программирования. Также автор собрал материалы для их изучения и практики — задачи с LeetCode:

tprg.ru/jdPv

#алгоритмы
Алгоритмы и структуры данных для начинающих

Уверенное применение структур данных и алгоритмов имеет важное значение при создании программ. Изучить основы поможет серия коротких видеоуроков с примерами на JavaScript. Например, что такое BinarySearchTree, LinkedList, Stack, Queue, их применение, а также другие структуры и алгоритмы:

https://youtube.com/playlist?list=PLIFGfLqvZ-yGHI2Fg0NCgi7FY0h1yh-af

#js #алгоритмы
Сложность алгоритмов. Big O. Основы

Сложность алгоритма — это количественная характеристика, которая говорит о том, сколько времени или какой объём памяти потребуется для выполнения алгоритма. Big O нотация используется для описания верхней границы.

В статье обсуждаются различные типы сложности, включая константную (O(1)), линейную (O(n)), логарифмическую (O(log n)), линеарифметическую (O(n * log n)) и квадратичную (O(n^2)).

Понимание Big O нотации критически важно для любого разработчика, так как это помогает оптимизировать код и делает его более эффективным.

Читаем тут: bimlibik.github.io/posts/complexity-of-algorithms/

#алгоритмы
eBay задаёт новый подход к поиску

Новая функция позволяет пользователям находить желаемые товары по визуальным подсказкам, не вводя текст.

Статья рассказывает, как алгоритмы компьютерного зрения и машинного обучения помогают в этом.

#алгоритмы #ии
По-честному про алгоритмы

Каждый разработчик сталкивается с алгоритмическими задачами, но не каждый понимает их реальную ценность.

Эта статья расскажет о путешествии автора в мир LeetCode и о том, как решение задач на этой платформе повысило его профессиональные навыки.

#статья #алгоритмы
10 графовых алгоритмов

Автор знакомит нас с основными понятиями и принципами работы графов. Затем подробно разбирает каждый из 10 ключевых алгоритмов: от поиска путей до оптимизации потоков.

#статья #алгоритмы
This media is not supported in your browser
VIEW IN TELEGRAM
12 алгоритмов в гифках, которые должен знать каждый разработчик

Сейчас среди начинающих разработчиков распространено заблуждение, что зазубривание стандартных алгоритмов имеет важное значение. Для прохождения собеседования на некоторые вакансии это действительно так, но в повседневной деятельности оно не всегда может быть таким важным.

Так неужели знания в области алгоритмов бесполезны? Конечно, нет. Что по-настоящему важно, так это умение думать алгоритмически. Не только чтобы воспроизводить и изменять стандартные алгоритмы, но и чтобы вам было комфортно использовать код для решения задач, с которыми вы столкнетесь в роли разработчика.

Держите статью, где на пальцах объясняют принцип работы 12 популярных алгоритмов: поиски, сортировки, кодирование и другое. Для упрощения понимания у каждого алгоритма есть визуализация.

#алгоритмы #теория
Бесплатный курс по алгоритмам и структурам данных

Познания в алгоритмах и структурах данных помогают начинающему программисту в эффективном решении задач и оптимизации производительности программ.

Ловите бесплатный интерактивный курс, в котором рассмотрены структуры данных, наиболее часто использующиеся на практике: массивы, списки, очереди, стеки, динамические массивы, очереди с приоритетами, системы непересекающихся множеств, хеш-таблицы, сбалансированные деревья.

Вы узнаете, как такие структуры данных реализованы в разных языках программирования, и, конечно же, потренируетесь самостоятельно их реализовывать, применять и расширять.

@prog_point #структуры #алгоритмы #теория
​​Подборка алгоритмов, которые правят миром

Существует очень много алгоритмов, но какие из них используются в реальной жизни? Вот список конкретных из них, которые используются повсеместно и на которые вам точно стоит обратить внимание:

Алгоритмы сортировки;
— Преобразование Фурье;
Алгоритм Дейкстры;
Алгоритм RSA;
Алгоритм безопасного хеширования;
Алгоритм факторизации чисел;
— Анализ связей;
— Пропорционально-интегрально-дифференцирующий алгоритм
Алгоритм сжатия данных;
Алгоритм генерации случайных чисел;

Про каждый из этих алгоритмов простым языком рассказывают в этой статье. Так что сохраняйте такой маст хэв.

@prog_point #алгоритмы #general #теория
8 бест-эвер алгоритмов для программиста

Для начинающих разработчиков знание алгоритмов является ключевым навыком, так как они помогают оптимизировать код и делать его более эффективным.

Алгоритмов очень и очень много, но есть некоторые, которые используются повсеместно и могут спрашиваться на собеседованиях. Вот топ-8 категорий таких:

— алгоритмы сортировки;
— в т.ч. сортировка слиянием;
алгоритмы поиска;
— графические алгоритмы;
— динамическое программирование;
— жадные алгоритмы;
— поиск с возвратом;
— рандомизированный алгоритмы.

Про каждый из них с примерами кода рассказали в статье.

@prog_point #теория #алгоритмы