首页
社区
课程
招聘
程序的速度问题!
2004-7-9 10:31 4619

程序的速度问题!

RoBa 活跃值
16
2004-7-9 10:31
4619
最近在学VC,想把黑白棋游戏用C改写一下,因为算法要多次的递归求优解,一点小小的速度上差异多次累加,影响就十分的大.我想问在相同的算法下,怎样的代码才能速度更快?

1.是不是应该少用函数?编译时函数都是的CALL形式吧,又要PUSH,POP半天?
2.二维数组是不是慢于一维数组?
3....还没想好

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 2
打赏
分享
最新回复 (7)
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
nbw 24 2004-7-9 11:17
2
0
可以考虑把递归该成非递归,看看数据结构的书,上面有介绍
雪    币: 231
活跃值: (115)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
风云剑 2004-7-9 11:34
3
0
1、用inline
2、改成非递归很麻烦,我写过黑白棋游戏的。
3、二维数组和一维数组的效率没有比较过,无法提出建议。
雪    币: 302
活跃值: (410)
能力值: ( LV12,RANK:410 )
在线值:
发帖
回帖
粉丝
Spring.W 10 2004-7-9 11:58
4
0
楼上的说得不错,使用内联编译,会大大提高速度。
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
RoBa 16 2004-7-9 12:23
5
0
OK. 我试试.
雪    币: 250
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zdd 2004-7-9 14:28
6
0
最初由 风云剑 发布
1、用inline

究竟内联不内联是由编译器决定的,一般代码代码超过5,6行编译器是不会设置为内联函数的,还是考虑非递归吧
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
RoBa 16 2004-7-9 21:35
7
0
不用递归我不会呀,计算机竞赛的时候我也自己学过这个,用动态规划?最容易理解的递归现在都快把我搞死了.现在的速度计算四步棋在人可以忍受的限度之内,虽然我远远不是它的对手了,但.....
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
RoBa 16 2004-7-10 23:00
8
0
还得递归,用了剪枝搜索,在20秒之内可以计算六步棋了.
各位大大有什么好主意.我想不出更好的算法.
游客
登录 | 注册 方可回帖
返回