用java做了一個數組亂序,首先建立快速排序算法,排序的依據是根據序列中隨機產生的序列號,序列號利用map保證在每次排序過程中只產生一次,不知道有沒有效率更高的方法,大家咚咚腦筋哈
public static void randomList(List list) {
Collections.sort(list, new Comparator(){
HashMap map = new HashMap();
public int compare(Object v1, Object v2) {
init(v1);
init(v2);
double n1 = ((Double)map.get(v1)).doubleValue();
double n2 = ((Double)map.get(v2)).doubleValue();
if(n1 > n2)
return 1;
else if(n1 < n2)
return -1;
return 0;
}
private void init(Object v){
if(map.get(v) == null){
map.put(v, new Double(Math.random()));
}
}
protected void finalize() throws Throwable {
map = null;
}
});
}
@2008 楊一. 版權所有. 保留所有權利