codice:
V1 contiene i valori
V2 contiene gli indici
V3 booleano inizializzato a falso
V4 inizializzato a V1

per ogni i in [0, N):
  j = v2[i] modulo N
  se V3[j] è falso:
    V3[j] = vero
    V1[j] = V4[i]