文件名称:算法设计_分治算法
文件大小:901KB
文件格式:PPT
更新时间:2017-10-15 08:15:16
算法
1 算法思想 分而治之方法与软件设计的模块化方法非常相似 为了解决一个大的问题 可以: 1 把它分成两个或多个更小的问题; 2 分别解决每个小问题; 3 把各小问题的解答组合起来 即可得到原问题的解答 小问题通常与原问题相似 可以递归地使用分而治之策略来解决 例 1 [找出伪币] 给你一个装有1 6个硬币的袋子 1 6个硬币中有一个是伪造的 并且那个伪造的硬币比真的硬币要轻一些 你的任务是找出这个伪造的硬币 为了帮助你完成这一任务 将提供一台可用来比较两组硬币重量的仪器 利用这台仪器 可以知道两组硬币的重量是否相同 比较硬币1与硬币2的重量 假如硬币1比硬币2轻 则硬币1是伪造的;假如硬币2比硬币1 轻 则硬币2是伪造的 这样就完成了任务 假如两硬币重量相等 则比较硬币3和硬币4 同样 假如有一个硬币轻一些 则寻找伪币的任务完成 假如两硬币重量相等 则继续比较硬币5和硬币6 按照这种方式 可以最多通过8次比较来判断伪币的存在并找出这一伪币 ">1 算法思想 分而治之方法与软件设计的模块化方法非常相似 为了解决一个大的问题 可以: 1 把它分成两个或多个更小的问题; 2 分别解决每个小问题; 3 把各小问题的解答组合起来 即可得到原问题的解答 小问题通常 [更多]