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