随机打乱一个数组的顺序

      把一个数组的顺序打乱,很常用的算法,比如洗牌。。

      代码如下:

import java.util.Random;

public class RandomSort {
	private Random random = new Random();
	//数组大小
	private static final int SIZE = 10;
	//要重排序的数组
	private int[] positions = new int[SIZE];
	
	public RandomSort() {
		for(int index=0; index=0; index--) {
			//从0到index处之间随机取一个值,跟index处的元素交换
			exchange(random.nextInt(index+1), index);
		}
		dwn();
	}
	
	//交换位置
	private void exchange(int p1, int p2) {
		int temp = positions[p1];
		positions[p1] = positions[p2];
		positions[p2] = temp;
	}
	
	//打印数组的值
	private void dwn() {
		for(int index=0; index

 不过由于随机数产生器产生的随机数不太随机,所以排序的结果页有很多相似的地方。换一个好的随机数产生器,会达到更好的效果,就能用于洗牌了,呵呵。

你可能感兴趣的:(算法)