[阅读: 552] 2009-03-20 08:57:47
就拿3等奖来说
1.7次循环每次循环10w条记录是没有必要的,一次都不用。
2.生成的随机数到记录之间的对应,如果STRINGLIST是链表结构,那这个对应可能隐藏着一次10W次的循环,这个也是没必要的,应该改成基于 树结构的容器。
3.删除一条记录,得看你程序的具体写法,有可能隐藏着一次10W次的循环,也是没必要的。
正确的做法应该是:
总的容器改成hash map或map
另外用7个小容器,对应7个部门
循环直到抽出300个将
生成随机数,抽一个人出来
根据他的部门放到对应的小容器里,并从大容器里删掉,如果小容器满了,则忽略
这样做,估计要不了1/10秒就抽完了。