Ho bisogno di un algoritmo che distribuisca gli stessi elementi in un elenco, in modo da massimizzare la distanza tra le occorrenze.
es. Ho una lista di 15 articoli:
{a,b,c,c,c,d,e,f,f,f,g,h,h,i,j}
L'algoritmo dovrebbe riordinarli in modo tale che tutti i duplicati vengano diffusi nel modo più uniforme possibile.
L'elenco menzionato dovrebbe risultare in qualcosa di simile:
{c,f,a,h,b,c,d,e,c,f,g,c,h,i,j,f}
Preferibilmente mi piacerebbe pseudo codice, e ancora meglio sarebbe TSQL (dato che è la piattaforma su cui deve essere eseguito). Ha bisogno di elaborare centinaia di questi elenchi in un colpo solo.
Ho anche testato un metodo proposto chiamato "Weighted shuffle", ma questo permetterà comunque che due degli stessi elementi nell'elenco vengano visualizzati uno accanto all'altro anche quando non è necessario.