- 问题描述
给定任意个不重复的数字,对其进行随机排序
- 算法分析
首先想到可以将给定的数字放在一个集合A中,初步定为一个ArrayList,这样,可以用A集合的长度来做为随机数的基数,取出一个数x,放到结果集合B中,然后将数x从A集合删除;接着用A集合剩下的长度作为基础重复上一步操作,最终可以得到结果集合B。考虑到用Arraylist删除比较慢,可以用LinkedList来代替。也可以用数组来模拟LinkedList,我用了最偷懒的做法。
- 代码如下
本文介绍了一种使用LinkedList和随机数生成器实现的随机排序算法。该算法通过不断从原始列表中随机选择元素并移除,直至所有元素都被选中并放入结果列表中,实现了输入数字的随机排列。
给定任意个不重复的数字,对其进行随机排序
首先想到可以将给定的数字放在一个集合A中,初步定为一个ArrayList,这样,可以用A集合的长度来做为随机数的基数,取出一个数x,放到结果集合B中,然后将数x从A集合删除;接着用A集合剩下的长度作为基础重复上一步操作,最终可以得到结果集合B。考虑到用Arraylist删除比较慢,可以用LinkedList来代替。也可以用数组来模拟LinkedList,我用了最偷懒的做法。
828

被折叠的 条评论
为什么被折叠?