CNDEV
CNDEV.ORG
当前在线
论坛
CBD
程序员情感CBD
程序员见面交流会
CBD开发区
Java/J2ME
.NET/C#
数据库
Delphi/BCB
Visual C
其它
修真养身
中国象棋
纪念日
谈钱太俗,还是投机吧
听音乐
iCosta
资源共享
一隅
好文共赏
看电影看美剧
待定
狗屎
雪域召唤
工作流
专业显摆区
语录
情感
批评与自我批评
爱情故事
发牢骚
看三点区
游戏
CNDEV-CS/WOW
浩宇长空
生活
家有XPH
我爱学英语
美食天地ORG
半调子体育迷
观澳园友邻
搞笑奇文
拍照片
我读书我存在
论坛系统
超级垃圾站
系统建议及BUG
系统测试
中国开发网
: 论坛:
程序员情感CBD
: 贴子 706711
pcplayer
: 信息多,可以把信息封装到对象里,把对象挂到 TStringList 上去啊。这样更简单。
[阅读: 474] 2009-03-20 09:44:34
<空>
相关信息:
上次那个抽奖程序,效率好像很低。
(47字)
(
mhappy
[571]
2009-03-20 07:55
)
贴出代码来看看
(空) (
龙之吻
[342]
2009-03-20 07:58
)
你是怎么抽的?
(49字)
(
haitao
[407]
2009-03-20 07:59
)
这样没过程了。代码简介。
(159字)
(
mhappy
[443]
2009-03-20 08:08
)
可能慢在:从10万条里删1条
(51字)
(
haitao
[394]
2009-03-20 08:13
)
具体慢在哪个环节呢?
(65字)
(
mhappy
[372]
2009-03-20 08:17
)
我不是说了:从10万条里删1条 (51字) (haitao [6] 今天 16:13)
(41字)
(
haitao
[431]
2009-03-20 08:26
)
这个不了解。你是说STRINGLIST会自动调整内存块啊
(空) (
mhappy
[368]
2009-03-20 08:28
)
STRINGLIST 改成别的容器,比如基于树结构的map啥的
(44字)
(
bjwf
[456]
2009-03-20 08:26
)
。
(空) (
龙之吻
[336]
2009-03-20 08:30
)
我觉得不是慢在生成随机数上
(空) (
半打黑趵
[368]
2009-03-20 08:36
)
可能就是慢在你删除上面。不要删除试试看是不是速度提高了。怕重复的话,对结果集的 stringList 进行排序并且设置它不允许重复。
(空) (
pcplayer
[480]
2009-03-20 09:14
)
是这样么?
(391字)
(
龙之吻
[423]
2009-03-20 08:20
)
没看明白。
(空) (
mhappy
[364]
2009-03-20 08:26
)
怎么基本类型特意前置++,反而iterator后置++?如果是有意区分使用的话,搞反了。
(空) (
周星驰
[397]
2009-03-20 08:31
)
偶错了
(空) (
龙之吻
[327]
2009-03-20 08:32
)
这种方法应该不会超过1s
(空) (
龙之吻
[390]
2009-03-20 08:28
)
得到300个不重复的随机数这么费时间?!算法肯定有问题了,可以说没有算法。
(空) (
周星驰
[371]
2009-03-20 08:17
)
确实没有,就直接生成再比较的。给推荐一个吧~
(空) (
mhappy
[351]
2009-03-20 08:18
)
我能想象到的,你是不是吧这10万个string存在文件里了,每次抽全读到内存里修改完了又在协会文件去,这样应该可以有这么慢。应该没什么复杂算法的,你可能在哪粗心了。
(空) (
周星驰
[597]
2009-03-20 08:40
)
初始化时从文件读,全部抽完才保存。。。
(空) (
mhappy
[343]
2009-03-20 08:43
)
买我的抽奖工具吧
(44字)
(
haitao
[402]
2009-03-20 08:44
)
技术上好像没什么,就是感觉有个耗时环节。。。
(空) (
mhappy
[329]
2009-03-20 08:45
)
说说详细过程,上面写的简单。
(171字)
(
mhappy
[416]
2009-03-20 08:43
)
避免重复抽到可以靠标志位而不是删除它
(空) (
dead_lee
[348]
2009-03-20 08:44
)
偶用STRINGLIST,要单独再搞个标志表? 或者改二维?
(60字)
(
mhappy
[524]
2009-03-20 08:48
)
不要专门的删除标志,中奖列表不就是最好的标志了。。。。。。
(91字)
(
haitao
[397]
2009-03-20 08:51
)
抽n人的检查次数:1+2+...+(n-1)
(空) (
mhappy
[477]
2009-03-20 08:55
)
先sort再比较呗,c++的话有set
(空) (
半打黑趵
[399]
2009-03-20 08:57
)
中奖列表 可以排序的,这样查找就是很快的了
(空) (
haitao
[366]
2009-03-20 09:15
)
CBuilder么?
(17字)
(
龙之吻
[433]
2009-03-20 08:56
)
我猜你的问题出在这几个方面.
(309字)
(
bjwf
[437]
2009-03-20 08:57
)
本来就是。。。。。。。。。不过你为什么老提到“树”?
(16字)
(
haitao
[361]
2009-03-20 09:17
)
因为这个应用从本质上和算法与数据结构的角度来讲,性能取决于所使用的容器的存储结构。
(127字)
(
bjwf
[463]
2009-03-20 09:24
)
树状结构的插入删除效率比较高
(空) (
龙之吻
[380]
2009-03-20 09:25
)
即使是顺序存储也不应该这么慢,估计是borland本来就没打算把stringlist用于超过1万条的场合
(9字)
(
haitao
[416]
2009-03-20 09:33
)
请教一下。。。
(105字)
(
mhappy
[381]
2009-03-20 09:26
)
写错了,是350个奖。
(155字)
(
bjwf
[404]
2009-03-20 09:34
)
多谢!偶回去试试。
(空) (
mhappy
[330]
2009-03-20 09:38
)
如何保证七个单位都是50人中奖 -- 搞7个stringList,每个 StringList 抽1个,抽50次。
(335字)
(
pcplayer
[515]
2009-03-20 09:38
)
我支持这个, 老狼那个不如用这个好...
(30字)
(
dead_lee
[368]
2009-03-20 09:57
)
一定要使用多线程,这样在多核的机器上可以更快
(空) (
sealw
[433]
2009-03-21 07:40
)
忘记Delphi的stringlist是类似java vector还是map/list了.
(100字)
(
dead_lee
[1027]
2009-03-20 09:00
)
stringList 本身是动态数组,但它支持 name=value 的格式。并且它还可以挂接一个对象指针。要速度,另外还有一个 THashStringList
(空) (
pcplayer
[557]
2009-03-20 09:30
)
信息多,可以把信息封装到对象里,把对象挂到 TStringList 上去啊。这样更简单。
(空) (
pcplayer
[473]
2009-03-20 09:44
)
抽啥抽啊,自己先写好300个号,到时候界面上呼噜呼噜一顿忽悠,然后直接拿号!
(空) (
有狐
[386]
2009-03-20 09:45
)
高人!做技术不如做忽悠!
(空) (
pcplayer
[358]
2009-03-20 10:07
)
高效算法在此!
(92字)
(
周星驰
[393]
2009-03-20 10:08
)
不行,万一卡纸了怎么办?应该是这样的
(92字)
(
有狐
[356]
2009-03-20 20:59
)
猜测你慢在多次在StringList中进行了扫描和进行了stringlist的增减。
(72字)
(
DeepBlue
[580]
2009-03-21 00:28
)
这应该是最快的办法
(空) (
龙之吻
[352]
2009-03-21 01:08
)
这个办法不错。
(88字)
(
mhappy
[375]
2009-03-21 01:38
)
显示好做,独立线程在随机显示,在得到数据后,显示改为遍历过的stringlist节点
(空) (
DeepBlue
[475]
2009-03-21 04:12
)
mhappy 太实在,想拿他当前正经过的真实数据来显示。其实可以做一个一堆数字滚动的动画,启动动画,然后当得到抽奖号码时,停止动画,显示那个真实的号码。
(51字)
(
pcplayer
[499]
2009-03-21 04:16
)
这样有一个风险
(104字)
(
haitao
[343]
2009-03-21 05:12
)
何必随机排序?10万个数据的随机排序的时间比产生300个随机数的时间肯定多的多。就产生个300个不重复的随机数做下标,省心省事
(空) (
Fish
[472]
2009-03-21 05:36
)
我觉得是haitao大师的快。
(空) (
龙之吻
[336]
2009-03-21 05:44
)
多个排序,能快到哪里去
(空) (
Fish
[379]
2009-03-21 05:48
)
我做个测试
(空) (
龙之吻
[315]
2009-03-21 05:50
)
怎么两个的测试结果都不到1ms?
(4字)
(
龙之吻
[343]
2009-03-21 06:44
)
haitao大师的是扑克牌的分牌的算法。我认为这个最高效。
(61字)
(
龙之吻
[400]
2009-03-21 05:41
)
产生300个随机数,排序后去stringlist取string,对这300个数的排序保证了不会出现重复的下标,并且保证最坏的情况下是完全扫描1次10万个元素的stringlist
(空) (
DeepBlue
[682]
2009-03-21 11:47
)
我说的风险是:已经开出的名单,也可能在开新名单时的反复滚动演示中正好出现
(36字)
(
haitao
[337]
2009-03-21 12:29
)
欢迎光临本社区,您还没有登录,不能发贴子。请在
这里登录