我有一個包含N個元素的列表,我想隨機化它的順序。重新排序列表以在Java中隨機化其訂單
最好用最少的計算,並能夠用完內存(重複總數)。
到目前爲止,我想出了:
- 創建新的空單,取第一個元素,從最初的名單,在隨機位置的新列表插入,量級似乎O(N * N)但沒有使用額外的內存。
- 創建一個新的ArrayList(容量N)(因此訪問是O(1)),創建一個新的hashSet並插入所有可能的位置(N),取出原始List的第一個元素並將其插入到隨機位置新的數組列表,從ti中刪除這個位置,因爲ti已被使用。
- 創建一個新的HashSet,將所有元素添加到此hashSet中,並迭代該集合以創建一個新List,並希望hashSet中的順序是隨機的。
對我來說似乎最便宜的是第三種選擇,但我不確定結果是多麼隨意。有什麼建議麼?
即使他不是最快的,他是最清楚的,我感謝他的鏈接。完善。 – Daren