zoukankan      html  css  js  c++  java
  • [转载]算法学习的轨迹

    看到网上有人说,算法是这样学习的:

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

  • 相关阅读:
    json转List、Map
    java复制文件的4种方式
    Java并发编程之CountDownLatch的用法
    SpringMVC整合ActiveMQ
    Spring AOP (事务管理)
    Spring AOP 的实现方式(以日志管理为例)
    Java设计模式之模板方法模式(Template Method)
    MongoDB简介
    线程池的实现原理
    ReentrantLock的底层实现机制 AQS
  • 原文地址:https://www.cnblogs.com/frustrate2/p/1367135.html
Copyright © 2011-2022 走看看