文章目录
  1. 1. 算法的定义
  2. 2. 算法设计及实现流程
  3. 3. 重要的问题类型
  4. 4. 基础数据结构
  5. 5. 常用的算法思想

算法的定义

An algorithm is a sequence of unambiguous instructions for solving a problem

即算法是解决问题的无二义性的指令序列.简单说就是用来解决问题步骤.

算法设计及实现流程

算法设计及实现流程

重要的问题类型

  • Sorting
  • Searching
  • String processing
  • Graph problems
  • Combinatorial problems
  • Geometric problems
  • Numerical Problems

基础数据结构

  • linear data structure
    • array
    • list
    • stack
    • queue
  • graphs
  • tree
  • set and dictionaries

常用的算法思想

  • Brute force (暴力求解)
  • Divide and conquer (分治法)
  • Decrease and conquer (减治法)
  • Transform and conquer (转治法)
  • Space and time tradeoffs (时空权衡)
  • Greedy approach (贪婪算法)
  • Dynamic programming (动态规划)
  • Iterative improvement (迭代改进)
  • Backtracking (回溯法)
  • Branch and bound (分支界限法)

基本上,算法就是围绕上面提到的问题和数据结构进行研究,遇到某个问题时,先分析问题,确定问题类型和使用的数据结构,有利于快速找到头绪.

文章目录
  1. 1. 算法的定义
  2. 2. 算法设计及实现流程
  3. 3. 重要的问题类型
  4. 4. 基础数据结构
  5. 5. 常用的算法思想