how algorithms are named