Когда то я задавался таким же вопросом.
Для меня же было достаточно посмотреть на
структуры данных и
алгоритмы сортировок в действии.
Во-вторых, так как я программирую на C++, у меня есть стандартная библиотека std, которая предоставляет мне реализации (интерфейс) всех алгоритмов и структур данных. Мне же остается понять что и
в каких случаях лучше использовать.
Книг по алгоритмам и структурам данных множество, но почти все они (о ужас!) довольно сложные.
Потому что они вдаются в технические подробности, которые программистам зачастую совершенно не нужны, однако их стоит знать для фундаментальных знаний и расширения кругозора.
Долой формальность!