站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题Random随机生成1-20000个不相同的数字?

Random随机生成1-20000个不相同的数字?

摘要: Random随机生成1-20000个不相同的数字?


怎么判断不相同的,用什么方法效率高点???


没太懂,从20000个数中判断了,逐个判断??


肯定是循环判断撒,要判断以前用过没有~~


难度系数一定,如果算法复杂,效率高,如果算法简单,效率低。
方法很多。


找本算法书,很多都有,查找算法。
什么折半拉,2分法拉。


还可以用堆栈来做。


http://community.csdn.net/Expert/TopicView3.asp?id=5047441


很容易的
呵呵



生成一个随机数x插入一个到排序的链表中:
f(x,list){
如果list为空,list.add(x);
如果list有一个元素,x大于它,list.add(x) else list.insert(x);
if(x>list中间那个数)
f(x,list右段)
else if(xf(x,list左段)
//如果相等,返回
return;
}
//希望你能看懂,二分法,排序与判断数是否相同同时进行,一个排序后的20000个数14次可以找到那个与之相同的数,如果用循环的方法遍历20000个未排序的数的话,那就必须要20000次。


数据结构未深思,list不一定适合,总之是一个可以用二分法并且可以插入值的数据结构


//生成随机数表
Random random = new Random();
random.setSeed(System.currentTimeMillis());
Set set = new HashSet();
while(set.size() < 20000){
set.add(Math.abs(random.nextInt()));
}


↑返回目录
前一篇: 什么时候使用PushbackReader ?
后一篇: 如何在java中操作word?