中国开发网: 论坛: 程序员情感CBD: 贴子 706691
bjwf
我猜你的问题出在这几个方面.
就拿3等奖来说
1.7次循环每次循环10w条记录是没有必要的,一次都不用。
2.生成的随机数到记录之间的对应,如果STRINGLIST是链表结构,那这个对应可能隐藏着一次10W次的循环,这个也是没必要的,应该改成基于 树结构的容器。
3.删除一条记录,得看你程序的具体写法,有可能隐藏着一次10W次的循环,也是没必要的。

正确的做法应该是:
总的容器改成hash map或map
另外用7个小容器,对应7个部门

循环直到抽出300个将
生成随机数,抽一个人出来
根据他的部门放到对应的小容器里,并从大容器里删掉,如果小容器满了,则忽略

这样做,估计要不了1/10秒就抽完了。

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录