我有一个包含N个元素的列表,我想随机化它的顺序。重新排序列表以在Java中随机化其订单
最好用最少的计算,并能够用完内存(重复总数)。
到目前为止,我想出了:
- 创建新的空单,取第一个元素,从最初的名单,在随机位置的新列表插入,量级似乎O(N * N)但没有使用额外的内存。
- 创建一个新的ArrayList(容量N)(因此访问是O(1)),创建一个新的hashSet并插入所有可能的位置(N),取出原始List的第一个元素并将其插入到随机位置新的数组列表,从ti中删除这个位置,因为ti已被使用。
- 创建一个新的HashSet,将所有元素添加到此hashSet中,并迭代该集合以创建一个新List,并希望hashSet中的顺序是随机的。
对我来说似乎最便宜的是第三种选择,但我不确定结果是多么随意。有什么建议么?
即使他不是最快的,他是最清楚的,我感谢他的链接。完善。 – Daren