第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用.NET隨機化數(shù)組的最佳方法

用.NET隨機化數(shù)組的最佳方法

慕標琳琳 2019-06-20 15:28:58
用.NET隨機化數(shù)組的最佳方法用.NET隨機化字符串數(shù)組的最佳方法是什么?我的數(shù)組包含大約500個字符串,我想創(chuàng)建一個新的Array有相同的字符串,但順序是隨機的。請在你的答案中包括一個C#例子。
查看完整描述

3 回答

?
汪汪一只貓

TA貢獻1898條經(jīng)驗 獲得超8個贊

你在找洗牌算法對吧?

好的,有兩種方法可以做到這一點:clever-but-people-always-seem-to-misunderstand-it-and-get-it-wrong-so-maybe-its-not-that-clever-after-all方式,和愚蠢的石頭-但誰在乎-因為它的工作方式。

啞道

  • 創(chuàng)建第一個數(shù)組的副本,但是將每個字符串標記為一個隨機數(shù)。
  • 根據(jù)隨機數(shù)對重復(fù)數(shù)組進行排序。

這個算法工作得很好,但是要確保隨機數(shù)生成器不太可能用相同的數(shù)字標記兩個字符串。因為所謂的生日悖論,這種情況發(fā)生的頻率比你預(yù)期的要高。它的時間復(fù)雜度是O(n原木n).

聰明之道

我將其描述為遞歸算法:

洗牌大小數(shù)組n(范圍內(nèi)的指數(shù)[0.n-1]):

如果n = 0
  • 無所事事
如果n > 0
  • (遞歸步驟)

    洗牌

    n

    -數(shù)組的一個元素
  • 選擇一個隨機指數(shù),

    x

    ,在范圍內(nèi)[0.

    n-1]

  • 交換索引處的元素

    n

    -1,元素在索引處

    x

迭代等價于遍歷數(shù)組,在執(zhí)行過程中用隨機元素交換,但請注意,不能與元素交換。迭代器指向的那個。這是一個非常常見的錯誤,并導(dǎo)致有偏見的洗牌。

時間復(fù)雜度為O(n).


查看完整回答
反對 回復(fù) 2019-06-20
  • 3 回答
  • 0 關(guān)注
  • 663 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號