Necesito 'ordenar' aleatoriamente una lista de enteros (0-1999) de la manera más eficiente posible. ¿Algunas ideas?Forma más eficiente de "ordenar" aleatoriamente (Reproducción aleatoria) una lista de enteros en C#
Actualmente, estoy haciendo algo como esto:
bool[] bIndexSet = new bool[iItemCount];
for (int iCurIndex = 0; iCurIndex < iItemCount; iCurIndex++)
{
int iSwapIndex = random.Next(iItemCount);
if (!bIndexSet[iSwapIndex] && iSwapIndex != iCurIndex)
{
int iTemp = values[iSwapIndex];
values[iSwapIndex] = values[iCurIndex];
values[iCurIndex] = values[iSwapIndex];
bIndexSet[iCurIndex] = true;
bIndexSet[iSwapIndex] = true;
}
}
Tenga en cuenta que crea una var de iTemp, pero no la use. Esto causará problemas, por supuesto. – Aistina
ahh, sí. Quise asignar valores [iCurIndex] = iTemp. – Carl
Una mejor forma de decir esto sería probablemente "La forma más eficiente de crear una permutación aleatoria de una lista de enteros" – ICR