随机“排序”的最有效方法(混乱)-C#中的整数列表我需要以最有效的方式对整数列表(0-1999)进行随机排序。有什么想法吗?目前,我正在做这样的事情: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;
}}
3 回答
慕码人8056858
TA贡献1803条经验 获得超6个赞
static Random random = new Random();public static IEnumerable<T> RandomPermutation<T>(IEnumerable<T> sequence){ T[] retArray = sequence.ToArray(); for (int i = 0; i < retArray.Length - 1; i += 1) { int swapIndex = random.Next(i, retArray.Length); if (swapIndex != i) { T temp = retArray[i]; retArray[i] = retArray[swapIndex]; retArray[swapIndex] = temp; } } return retArray;}
- 3 回答
- 0 关注
- 638 浏览
添加回答
举报
0/150
提交
取消