Tôi cần phải sắp xếp ngẫu nhiên một danh sách các số nguyên (0-1999) theo cách hiệu quả nhất có thể. Bất kỳ ý tưởng?Cách hiệu quả nhất để ngẫu nhiên "sắp xếp" (Trộn) một danh sách các số nguyên trong C#
Hiện nay, tôi đang làm một cái gì đó như thế này:
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;
}
}
Lưu ý rằng bạn tạo một biến iTemp var, nhưng không sử dụng nó. Điều này sẽ gây ra các vấn đề của khóa học. – Aistina
ahh, vâng. Ý tôi là gán giá trị [iCurIndex] = iTemp. – Carl
Một cách tốt hơn để nói điều này có lẽ sẽ là "Cách hiệu quả nhất để tạo hoán vị ngẫu nhiên của danh sách các số nguyên" – ICR