算法设计基本思路.pptVIP

  • 5
  • 0
  • 约4.14千字
  • 约 21页
  • 2017-05-06 发布于上海
  • 举报
算法设计基本思路

* * * * * * * * * * * 算法设计的基本思路 赵建华 南京大学计算机系 一些基本思路 复用已有的计算结果 通过预处理或改变计算方法,计算出可共用的中间结果 避免或减少无效的计算 保存/查询中间计算结果的方法 待求解的问题可以逐层分解成多个小问题; Q分解成为Q1,Q2,…,Qn Qi分解成为Qi1,Qi2,…,Qim 如果Qij之间有很多重合的地方,那么我们可以在第一次求解Qij的时候记录结果,并且在之后通过查询来避免重复求解Qij。 在应用中,有某个问题需要多次求解。且每次求解有很多可以重复利用的情况。 这个可以看作是上面一个问题的衍生情况。 保存/查询的例子(1) 棋类博弈问题 每个玩家的得分是他的最大块棋子的个数。 得分高的人赢得比赛。 问题:当棋盘上只有10个空格的时候,求是否某人一定赢。 描述 使用一个Config数据结构来描述棋局 记录了各个棋子的位置; 记录了下一步谁下 最基本的博弈递归函数 boolean win(Configure cfg) { if(cfg是最终结局) 计算各个player的得分,并返回胜负结果 for(每个可能的后继结局cfg’) if(!win(cfg’)) return true;//存在使对方必输的走法 return false } 中间结果的保存 Configure数据类型最多有1024个取值。 w

文档评论(0)

1亿VIP精品文档

相关文档