新概念c语言程序设计4.ppt

新概念c语言程序设计4.ppt

算法设计策略 4.1 分治策略 4.2 回溯策略 4.3 贪心策略 4.4 分枝界定策略 4.5 动态规划 4.1 分治策略 4.1.1 二分查找 4.1.2 快速排序 4.1.3 自行车带人问题 4.1.1 二分查找 一、问题描述 在N个已排序(设为从小到大)的数据(数或字符串),查询某一个数据:如果找到了,就指出其在N个数据中的位置;否则给出无该数据的信息,如给出“-1”。 二、算法分析 三、程序 三、程序(续) 四、说明 五、编程练习 4.1.2 快速排序 一、快速排序的基本思想: 二、算法框架 基本思路 划分函数 三、程序 三、程序(续) 三、程序(续) 四、运行结果 五、编程练习 4.1.3 自行车带人问题 一、问题描述 二、算法分析 1. 基本思路 2. 用二分法试探确定C 函数框架 3. 使用优选法代替二分法 三、程序 四、运行结果 五、编程练习 五、编程练习(续) 五、编程练习(续) 4.2 回溯算法 经常玩象棋的人,最不愿意对手悔棋。所谓悔棋,就是下棋下到感觉情况不妙时,要退回到前一步的状态上重新考虑。有时,退一步不行,还可能要退回几步。这种不良的棋风,用到解题上却倒是一种非常有用的方法,称之为回溯(back tracking)。它是一种系统的地穷举问题解答的方法。 使用回溯策略一般有如下的过程: 回溯策略的过程: (1

文档评论(0)

1亿VIP精品文档

相关文档