今儿总算步入算法的相关课程了,以前对算法是“只闻其声”,只知道是计算机的灵魂,广泛地说任何从输入到输出中间的过程都可以叫做算法。门外汉不太清楚算法与数学、数据结构的关系,那么可以直接看下图

图中拿TSP问题(寻找节点间的最短路径)举例,一个完整的算法求解需要

  1. 把问题抽象成计算机可理解的数学问题
  2. 选择适用的算法,这里要考虑算法的时间复杂度
  3. 算法的数据结构设计(存储、指针、数据…)
  4. 编程,将想法具现为程序(设计语言的选择也这这一步中)
  5. 验证程序的正确性,有的算法过于复杂只能验证其正确性而不能得出结果,比如TSP的遍历算法
  6. 考虑算法复杂性,优化

上完这一课看到56道题头略大~