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