簡易洗牌程式使用VB.NET
我在過去的工作中有用過洗牌程式,我自己也會寫,今天就來給大家看一下我最近用VB.NET寫出來的簡單洗牌程式。
Dim amount = 20 '總共多少個數字
Dim i, j, temp As Integer
Dim numbers(amount - 1) As Integer '在VB中的陣列如果數字是N,實際這個陣列就會有N-1個資料,要注意
amount = amount - 1
For x = 0 To amount '把數字照順序存入陣列
numbers(x) = x + 1
Console.Write(numbers(x).ToString + " ")
Next
Console.WriteLine()
Console.WriteLine("----------------------------------")
Randomize() '要加入這行才會每次的亂數都不一樣
'任意一個號碼和任意一個號碼位置對換,重複一直做就可以達到洗牌的效果
For x = 0 To amount
i = CInt(Rnd() * amount)
j = CInt(Rnd() * amount)
temp = numbers(i)
numbers(i) = numbers(j)
numbers(j) = temp
Next
For Each item In numbers '印出洗牌後的結果
Console.Write(item.ToString + " ")
Next
Console.WriteLine()
這是最簡單的洗牌方式,簡單但是沒有效率,只有幾百筆資料要洗牌沒有問題,但如果要幾百萬筆資料做洗牌,就不能用這種方式,要用更進階的方式洗牌。要把這些資料分組,然後以組別為單位來洗牌,組別裡面還有更小的組別,這樣子再把更小的組別做洗牌,這樣才可以有效率,這部分比較複雜,有空我再來為大家介紹。
留言列表