常见算法基本概念

常见算法基本概念

      • 分治法
        • 经典应用
      • 动态规划
        • 经典应用
      • 贪心
        • 经典应用
      • 回溯

分治法

分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同,然后将各子问题的解合并得到原问题的解

经典应用

  • 1.二分搜索
  • 2.大整数相乘
  • 3.归并排序,快速排序

动态规划

基本思想是将待求解问题分解成若干子问题,先求解子问题,再结合这些子问题得到原问题的解。与分治法不同的是,子问题往往不是相互独立的,所以动态规划会记录所有已解决子问题的答案

基本要素:最优子结构+重叠子问题

经典应用

  • 1.最长公共子序列
  • 2.最大子序列和
  • 3.01背包
  • 4.最优二叉搜索树

贪心

贪心和动态规划都要求问题具有最优子结构性质

贪心总是做出在当前来看最好的选择,通过局部最优解实现总体最优解

基本要素:最优子结构+贪心选择性质

经典应用

  • 1.单源最短路
  • 2.最小生成树
  • 3.哈夫曼编码

回溯

你可能感兴趣的:(算法,算法)