Кстати, хотелось бы поднять тему по поводу основных алгоритмов и структур данных, что считать за основу? По алгоритмам можно разделить на сортировки, поиска в глубину, действий с матрицами и обход деревьев, вот к примеру в сортировке что под основой понимать? Я к примеру знаю сортировку вставкой, быструю сортировку, сортировку слиянием, но вот в чем вопрос их же много, где основа? Или те же структуры( стеки, массивы, словари, очереди, деревья и тд). Не хочется углубляться в олимпиадное программирование, оно не нужно. А вот для общего развития основные алгоритмы и структуры очень нужные, это топ вещи для развития мышления