Java运用自身排序算法将数组或容器进行随机打乱。

基本思路:数组调用Arrays.sort(T[] a,Comparator<? super T> c),对Comparator进行重写。运用Random类 ,实现对数字的随机排序。

  1. 对数字进行随机排序。

        代码如下:

import java.util.Arrays;
import java.util.Comparator;
import java.util.Random;

public class RandomSort {

	public static void main(String[] args) {
     //定义数组
		Integer []arr = {0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8, 9};
	//定义随机树数
		Random r = new Random();
	//随机排序
		Arrays.sort(arr , new Comparator<Integer>() {
           
			@Override
			public int compare(Integer o1, Integer o2) {
				//随机比较大小,随机生成0或1
			   Integer flag = r.nextInt(2);
			   if(flag == 0)
				   return -1;
			   else 
				   return 1;
			}
		});
		//输出
		for(Integer ar : arr)
			System.out.print(ar + " ");
	}

}

输出结果:

2.对容器随机排序:

代码如下: 

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

public class RandomSort {

	public static void main(String[] args) {
		//定义容器
		List<Integer> arr = new ArrayList<Integer>();
		//定义随机树数
		Random r = new Random();
		//添加元素
		for(int i = 0 ; i < 10 ; i ++)
			arr.add(i);
		//随机排序
		Collections.sort(arr , new Comparator<Integer>() {

			@Override
			public int compare(Integer o1, Integer o2) {
				//随机比较大小,随机生成0或1
				   Integer flag = r.nextInt(2);
				   if(flag == 0)
					   return -1;
				   else 
					   return 1;
			}
		});
		//输出
		Iterator<Integer> iter = arr.iterator();
		while(iter.hasNext())
		{
			System.out.print(iter.next() +  " ");
		}
	
	}

}

输出结果:

3.对类进行排序:

代码如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

//实现Comparable接口
class Number implements Comparable<Number>
{
	private int a;
	public Number(int a )
	{
		this.a = a;
	}
	public int GetA()
	{
		return this.a;
	}

	@Override
	public int compareTo(Number o) {
		Random r = new Random();
		Integer flag = r.nextInt(2);
		   if(flag == 0)
			   return -1;
		   else 
			   return 1;
	}
}
public class RandomSort {

	public static void main(String[] args) {
		//定义容器
		List<Number> arr = new ArrayList<Number>();
		//添加数组{0 , 1 , 2 , 3 , 4 , , 5 , 6 , 7 , 8 , 9}
		for(int i = 0 ; i < 10 ; i ++)
			arr.add(new Number(i));
		//随机排序
		Collections.sort(arr );
		//输出
		Iterator<Number> iter = arr.iterator();
		while(iter.hasNext())
		{
			System.out.print(iter.next().GetA() +  " ");
		}
	
	}

}

输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值