Котов В.М., Соболевская Е.П., Толстиков А.А. В учебном пособии изложены фундаментальные понятия, используемые при разработке алгоритмов и оценке их трудоемкости. Теоретический материал дополнен примерами и рисунками, облегчающими самостоятельное изучение материала, а также перечнем задач для самостоятельного решения. В приложении разбираются алгоритмы решения творческих задач повышенной сложности...
🔔Какие алгоритмы и структуры данных необходимо знать, чтобы пройти техническую часть собеса? 😏 Конечно, не везде дают задачи на алгоритмы, но когда я проходил собеседования в почти 8 из 10 компаний 😱, мне задавали алгоритмическую задачу (и даже несколько). ✏️ Для успешного прохождения технической части важно иметь хорошее понимание следующих алгоритмов и структур данных: 1. Сортировка - вообще много алгоритмов, но самые прикольные и эффективные алгоритмы - это сортировка слиянием и быстрая сортировка (зная их уже покрываем 50% задач) 2. Поиск - очень часто нужно найти какой-то элемент, например, в массиве. Тут подойдет алгоритм бинарного поиска. Овладев им, уже можно решить 70% задач. 3. Графы - тут самые популярные - это поиск в глубину, обход в ширину 4. Рекурсия - это наше все, много задач, где можно ее применять 5. Еще есть жадные алгоритмы, но на собесах я не встречал задач с ними, возможно на супер-пупер позициях они есть ⚠️ Не забываем, что в одной задаче может использоваться несколько алгоритмов! 🧠 Структуры данных: 1. Массивы (must know) 2. Стеки, очереди, деки (иногда кандидаты про них не знают - red flag) 3. Множества (Set), карты (Map) 4. Графы 5. Связанные списки 6. Деревья 7. Хэш-таблицы ____________________ Конечно, после прохождения собеседования вам могут и не понадобиться все эти алгоритмы и структуры данных, но знать их необходимо. ❗️Еще важно также понимать основные принципы анализа сложности алгоритмов и уметь оценивать их эффективность (но это, если вы пойдете на крутую позицию или компанию). ✨Я буду стараться выкладывать задачки и их решения на JS/TS с описанием, но также хочу, чтобы вы обсуждали их решение в комментариях!✨