- 问题描述
给定任意个不重复的数字,对其进行随机排序
- 算法分析
首先想到可以将给定的数字放在一个集合A中,初步定为一个ArrayList,这样,可以用A集合的长度来做为随机数的基数,取出一个数x,放到结果集合B中,然后将数x从A集合删除;接着用A集合剩下的长度作为基础重复上一步操作,最终可以得到结果集合B。考虑到用Arraylist删除比较慢,可以用LinkedList来代替。也可以用数组来模拟LinkedList,我用了最偷懒的做法。
- 代码如下
给定任意个不重复的数字,对其进行随机排序
首先想到可以将给定的数字放在一个集合A中,初步定为一个ArrayList,这样,可以用A集合的长度来做为随机数的基数,取出一个数x,放到结果集合B中,然后将数x从A集合删除;接着用A集合剩下的长度作为基础重复上一步操作,最终可以得到结果集合B。考虑到用Arraylist删除比较慢,可以用LinkedList来代替。也可以用数组来模拟LinkedList,我用了最偷懒的做法。