Начать можно с книги
Грокаем алгоритмы, но учитывайте, что в ней самые основы. Если что-то посерьезней, то можно почитать
Алгоритмы Рода Стивенса. Если поискать, то можно найти к ней исходники на Java и Python. Также неплох
этот курс по алгоритмам, но в нём примеры только на Python, ну и
Big Geek для новичков тоже норм, но там по большей части на C#.