Какие алгоритмы нужно знать, чтобы стать хорошим программистом?

R

Renelio

Original poster
Данная статья содержит не только самые распространенные алгоритмы и структуры данных, но и более сложные вещи, о которых вы могли не знать. Читаем и узнаем!


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

Для начала давайте начнем с линейных структур данных и алгоритмов
  • Массивы
  • Связный список
  • Стек
  • Очереди
Перейдем к базовым алгоритмам
  • Сортировка — Сортировка слиянием, Сортировка вставками, Быстрая сортировка, Несколько взаимных перестановок.
  • Умножение матриц (Не обязательно реализовывать, главное — знать алгоритм)
  • Основные алгоритмы просеивания
  • Беззнаковая математика, включая умножение и деление
  • Алгоритм Евклида для нахождения НОД (наибольший общий делитель), Модульная инверсия, Быстрое возведение в степень
  • Числа Фибоначчи с матричным умножением
  • Нормальное распределение и математическое ожидание
  • Статистика – среднее вероятностное значение случайной величины, медиана, дисперсия, теорема Байеса
Также можно изучить популярные алгоритмические методы:
  • Алгоритмы декомпозиции – Бинарный поиск, Нахождение подмассива с наибольшей суммой элементов
  • Жадные алгоритмы – Выбор задач, кодирование по алгоритму Хаффмана
  • Динамичное программирование – Цепное матричное умножение, Алгоритм решения задачи по укладке ранца
  • Линейное программирование – Максимизация параметра, Линейное время сортировки
  • Криптографические алгоритмы – Алгоритм Манакера по нахождению длиннейшей подстроки-палиндрома, алгоритм нахождения наибольшей общей подпоследовательности (LSC), расстояние Левенштейна
Теперь перейдем к типичным нелинейным структурам данных
  • Деревья – Бинарное дерево, Дерево общего вида, Наименьший общий предок
  • Бинарное дерево поиска – Симметричный обход, Обход по уровням, Нахождение k’ого наибольшего элемента, Диаметр, Глубина, Количество узлов и т.д.
  • Динамическая память – Динамический массив, Двоичная куча, Пирамидальная сортировка
  • Алгоритм объединения-поиска
  • Хеш-таблица – Метод нахождения коллизий (Linear Probing), Открытая адресация, Предотвращение коллизий
Рассмотрим графы
  • Список смежных вершин графа, Матрица смежности графа, Взвешенные рёбра графа
  • Основные алгоритмы обхода – Поиск в ширину, Поиск в глубину и т.д.
  • Алгоритмы нахождения кратчайшего пути — Алгоритм Дейкстры, Алгоритм Флойда-Уоршелла, Алгоритм Беллмана-Форда
  • Минимальное остовное дерево — Алгоритм Крускала, Алгоритм Прима
К данному моменту вы должны быть хорошо знакомы с программированием, так как для дальнейшего прочтения и углубления в данную тему вы должны знать больше, чем студент.

Усложнённые деревья и графы
  • Сбалансированные деревья – AVL-дерево, Красно-черное дерево
  • Heavy-light декомпозиция, Б-деревья, Дерево квадрантов
  • Усложнённый граф – Минимальный разрез, Максимальный поток
  • Максимальное покрытие – Теорема о свадьбах
  • Гамильтонов цикл
  • Рёберный граф/ Линейный граф
  • Сильно связные компоненты
  • Главный подграф, Покрытие вершин, Задача коммивояжёра – Алгоритм аппроксимации
Продвинутые криптографические алгоритмы:
  • Алгоритм Кнута-Морриса-Пратта
  • Алгоритм Рабина-Карпа
  • Префиксные и суффиксные деревья
  • Автоматизация суффиксов – Алгоритм Укконена
Высшая математика
  • Быстрое преобразование Фурье
  • Проверка простоты
  • Вычислительная геометрия – Задача поиска ближайшей пары, Диаграмма Вороного, Выпуклая оболочка множества точек
Общие продвинутые темы:
  • Выполнение обхода всех комбинаций/перестановок
  • Поразрядная обработка
 
Название темы
Автор Заголовок Раздел Ответы Дата
Support81 Семь ключей к данным: какие уязвимости самые «модные» у киберпреступников Новости в сети 0
Support81 Gh0st RAT, RedTail, XMRig: какие ещё угрозы могут проникнуть на ваш компьютер из-за уязвимости в PHP Новости в сети 0
Support81 Адаптивный фишинг отключает бдительность жертв: какие приёмы используют злоумышленники Новости в сети 0
Support81 Пять лет под присмотром кибершпионов: какие APT-группировки атакуют компании в России и СНГ Новости в сети 0
Support81 Мошенничество с KeePass: какие последствия ждут жертв вредоносной рекламы? Новости в сети 0
Support81 Слежка без границ: какие ещё тайны скрывает знаменитый архив Эдварда Сноудена Новости в сети 0
A Банк требует документы по транзакциям по карте. Какие доки предоставить? Вопросы и интересы 1
R Kali linux какие бывают Свободное общение и флейм 1
C дополнения браузера, какие есть для безопасности Анонимность и приватность 3
M На какие кошельки безопаснее принимать деньги? Вопросы и интересы 6
S Сбор MAC-адресов устройств. Подскажите у кого какие идеи есть. WiFi/Wardriving/Bluejacking 0
F Просят сходить восстановить симку с доверенностью. Последствия какие? Вопросы и интересы 0
B Какие существуют аналоги cctools ? Софт для работы с текстом/Другой софт 0
G Кто какие языки программирования знает? Другие ЯП 25
Support81 «Вас заменят алгоритмы»: Билл Гейтс вынес приговор врачам, педагогам и творческим профессиям Новости в сети 0
K Мастер-класс «Инстаграм Истории: Обмани Алгоритмы Инстаграма» Другое 0
K Хороший А. - Алгоритмы спецслужб для построения сетей деловых связей Другое 0
A есть способы взлома камер которым приложение нужно? Уязвимости и взлом 0
Support81 Из инфлюенсеров в информаторы: что нужно знать владельцам страниц с 10 тысячами подписчиков Новости в сети 0
Emilio_Gaviriya Статья AlienVault: Всё, что вам нужно знать о платформе для обнаружения угроз. Уязвимости и взлом 0
Mr.Prime Ищу специалиста по деанону телеги. Есть приватный канал, нужно узнать владельца. Предоставляю работу. Ищу специалиста. 0
X СРОЧНО - Нужно проверить состояние обьекта, г. Хабаровск. Белая, 1000р Предоставляю работу. Ищу специалиста. 1
Support81 Россия вступает в гонку спутникового интернета: что нужно знать о проекте “Бюро 1440" Новости в сети 3
M Нужно ломануть телеграм кто поможет? Вопросы и интересы 0
Z Мне нужно купить веб -оболочку или cpanel Корзина 1
N Нужно изменить название софта Предоставляю работу. Ищу специалиста. 1
P Интересно Нужно в Германии получить письмо и переслать в РФ Предоставляю работу. Ищу специалиста. 1
G Нужно спарсить с сайта конкурента базу клиентов Предоставляю работу. Ищу специалиста. 1
slovokek НУЖНО НАПИСАТЬ БРУТ Предоставляю работу. Ищу специалиста. 1
H Взлом без предоплат писать на [email protected]!,Ok.ru,WhatsApp на заказ! Не нужно писать в ЛС на форуме. Все контакты указаны ниже Пишите на поч Корзина 0
Eteriass Интересно Атака "Злой двойник" и все что нужно про него знать Уязвимости и взлом 7
Denik Интересно Все, что нужно знать о DoS атаках Уязвимости и взлом 6
P Взлом Хорошие цены связь [email protected]!,Ok.ru,WhatsApp на заказ! Не нужно писать в ЛС на форуме. Все контакты указаны ниже Чтобы сделать Корзина 0
P Взлом Хорошие цены связь [email protected]!,Ok.ru,WhatsApp на заказ! Не нужно писать в ЛС на форуме. Все контакты указаны ниже Чтобы сделать Корзина 0
D Нужно Облачное хранилище, с одной нужной функцией Вопросы и интересы 1
L Интересно Биткоин готовится к потенциальному прорыву около $7 200, но нужно быть внимательными Новости в сети 1
N нужно подтверждение акк госуслуг Предоставляю работу. Ищу специалиста. 1
V Нужно узнать секреты или поймать на лжи? Корзина 0
D Нужно взломать архив rar Предоставляю работу. Ищу специалиста. 2
I Нужно полечить софт Корзина 0
B Услуги хакера и взлом на заказ Заказать взлом?-пишите нам [email protected] Не нужно писать в ЛС на форуме. Все контакты указаны ниже Пишите на поч Корзина 0
V Нужно узнать секреты или поймать на лжи? Ищу работу. Предлагаю свои услуги. 0
K Нужно дописать сайт! Ищу работу. Предлагаю свои услуги. 0
B Закрыто Аккаунты Яндекс.Директ с балансом НДС вносить не нужно Корзина 1
P Нужно пробить человека по новореганной почте Вопросы и интересы 3
АнАлЬнАя ЧуПаКаБрА INLINE Мож кому нужно) Русская Рыбалка 4 Проекты Private Keeper 1
N Приветствую! Ребята, выручайте! Нужно слить пару схем с Sharewood.biz Другое 6
G Все что нужно знать о взломах ВКонтакте и других соц. сетей Полезные статьи 1
T Нужно поднасрать Вопросы и интересы 12
Z нужно несколько аккаунтов вк Раздача (аккаунтов/ключей) 3

Название темы