Java随机不重复排序算法

  • 问题描述

       给定任意个不重复的数字,对其进行随机排序

  • 算法分析

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

  • 代码如下

public class RandomNumber { /** * 随机排序 * @param list 要进行随机排序的数据集合 * @return 排序结果 */ public static int[] getList(int[] list){ //数组长度 int count = list.length; //结果集 int[] resultList = new int[count]; //用一个LinkedList作为中介 LinkedList temp = new LinkedList(); //初始化temp for(int i = 0; i

 

你可能感兴趣的:(Java基础)