Мне кажется, что недостаточно.
Если Вы хотите понять алгоритмы, а не только перевести их с псевдо языка на какой-то язык программирования, то желательно знать:
- Начала анализа - почему одна функция растёт быстрее другой, с точностью до константы;
- Матрицы и понятия о них, многие алгоритмы служат именно для преобразований над матрицами;
- Теория графов;
- Начала теории вероятности и статистики - как минимум что такое случайное переменная, событие, мат. ожидание и дисперсия.
Но Вы меня старого не слушайте. Берите любую интересную задачу и пытайтесь её решить в пределах своих текущих способностей.