方法一
从已知数组中随机一个数,然后加入到另一个数组中,在加入之前,先检查是否已经加入过。
这种方法有很大运气成分,且数据越大,效率越低,超过一定数目,则程序几乎无法执行,会一直卡在那里,代码:
package com.test; import java.util.Random; public class TestArray { public static int runCount =0;//用于记录方法运算次数 public int [] m1(int [] arr){ Random ran = new Random(); int length = arr.length; int [] newArr = new int[length]; int count =0; while (true) { runCount ++; int r = ran.nextInt(length)+1; if(!exist(r, newArr)){ newArr [count] = r; count++; } if(count==length){ break; } } System.out.println("m1 运算次数 = "+runCount); return newArr; } public static boolean exist(int a,int [] arr){ for (int i = 0; i < arr.length; i++) { if(arr[i] ==a){ return true; } } return false; }