честно не понял что вы хотите оценить, какую оптимальность.
у алгоритмов есть разные метрики (оценочные харрактеристики)
например время работы, или потребление памяти, либо там размер кода.
сначало определите, какой из этих оценочных параметров вы хотите оптимизировать -> потом уже можно сказать какой из возможных вариантов оптимальнее.
если исходить из производительности, в времени исполнения (которое как правило оценивается по количеству операций) . то оба этих алгоритма абсолютно эквивалентны.
подробнее тут
https://ru.wikipedia.org/wiki/Вычислительная_сложность