算法学习指南

                        算法学习的轨迹 

  • 对于编程的初学者,可以先通过简单的排序算法了解最简单的ADT线性表的常用操作;
  • 然后要重点掌握递归技术,包括递归和递推的相互转换。递归技术非常重要,可以通过递归技术了解ADT栈的操作;
  • 接着学习搜索法的初步——回溯法,研究经典问题八皇后问题和走迷宫问题,通过这些经典问题了解深度优先搜索法(DFS)和宽度优先搜索法(BFS)以及ADT栈、ADT队列的操作,要学会利用人工设置堆栈模拟递归;
  • 接着可以学习分治法、贪心法这两种常用的策略,并应用到排序、搜索等简单的算法中;
  • 这时再开始学习图和树这两种抽象数据类型就应该没有什么难度了。
  • 在学习ADT图和ADT树时,要注意结合离散数学中的图论理论知识和搜索法中的DFS,BFS方法,要学会将实际问题转化为图论模型;
  • 再下去可以学习各种搜索法的优化算法,启发式搜索、A算法、A*算法或界限剪枝法等;
  • 然后是网络流算法,要注意模型的建立;
  • 最后学习最优化问题的解法,包括线性规划、动态规划、非线性规划等算法策略,这部分内容主要侧重模型的建立和分析,算法本身并没有难度。
  • 这样基本的算法就学习完了。再深入一点可以学习问题的计算复杂性,计算模型,并行算法,神经网络以及各个领域中的算法.

你可能感兴趣的:(编程,算法,优化,网络)