A new reversible circuit synthesis algorithm based on cycle representations of permutations