Que? ineffektivt?
Jag tolkade förslaget ungefär så här:
kort oblandad_lek[52];
kort blandad_lek[52];
for( int i = 52; i>0 --i )
{
int x = random(i); // i = maxvärde på random
blandad_lek[i-1] = oblandad_lek[x];
swap ( oblandad_lek[x], oblandad_lek[i-1] );
}
Ungefär så. Om det ger en bra blandad kortlek eller ej vågar jag inte säga, även om det rent spontant ser ok ut. Effektivt borde det väl ändå vara? O(n) eller är något av de andra föslagen O(log n)?