2012年7月31日 星期二

打亂一個 ArrayList

之前想打亂一個 ArrayList 總是用笨笨沒效率的方式…
突然就上網找一下大家都怎麼寫…於是找到這個易懂效率也不錯方式…
以 C# 記錄一下…

大致上觀念就是由後往前跑一次…每次亂數挑一個比自己小的交換…
List<Item> Items = new List<Item>();
// 填入一堆 Item 至 Items 中後…

Random rnd = new Random();
int nIndex = (Items.Count - 1);
while (nIndex > 1)
{
    int k = rnd.Next(nIndex);
    Item t = Items[k];
    Items[k] = Items[nIndex];
    Items[nIndex] = t;
    --nIndex;
}

沒有留言:

張貼留言