算法的基本思想-分治法 动态规划 贪心算法 回溯法 分支限界法
一、分治法->互不相交的子问题
基本思想:将一个难以解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。
典型代表:归并排序 折半排序
二、动态规划->互相重叠的子问题
基本思想:将待求解的问题分解为若干个子问题,按顺序求解子问题,为后一子问题求解提供有用信息。在求解任一子问题时,列出各种可能的局部解,丢弃其他局部解,通过决策保留那些有可能达到最优的局部解。依次解决各个子问题,最后一个子问题就是初始问题的解。
典型代表:KMP算法
三、贪心算法
基本思想:在对问题求解时,总是做出在当前看来时最好的选择。也就是说"目光短浅",不从征提加以考虑,他做出的仅仅时某种意义的局部最优解。
典型代表;TSP问题 背包问题
四、回溯法
基本思想:主要是在搜索尝试过程中寻找问题的解,当发现不满足求解条件时,就回溯返回,尝试别的路径。
典型代表:深度优先搜索
五、分支限界法
基本思想:分支限界法按广度优先策略遍历问题的解空间,在遍历过程中,对已经处理的每一个系欸但根据界限函数估算目标函数的可能值,从中选取使目标函数取得极值的结点有限进行广度优先搜索,从而不断调整搜索方向,尽快找到问题的解。
典型代表:最短路径问题