学习大纲

大约 2 分钟

学习大纲

建议

学习算法的过程需要持续的练习、理解和思考。以下是一些建议:

  • 学习算法之前,需要有一定的数据结构基础。如果对数据结构还不熟悉,可以先学习数据结构相关的知识。

  • 选择一本好的算法教材或者课程,建议选择一些经典的书籍或者公认比较好的课程,比如算法导论、LeetCode等。

  • 不要只看,要亲自实践。学习算法最好的方式就是写代码,自己动手实现算法,不断地调试和优化,不断地丰富自己的算法库。

  • 刻意练习和总结。刻意练习是指有目的、有计划地练习某个技能。在学习算法时,可以通过做题、写代码等方式进行刻意练习。总结是指学习过程中要善于总结,总结一些算法的特点、优缺点、适用场景等,对于帮助自己理解和记忆算法很有帮助。

  • 参加算法竞赛。算法竞赛是锻炼算法能力的好方式,可以参加一些算法竞赛的练习和比赛,这样可以锻炼算法的实战能力,同时也可以学习到其他人的优秀思路和方法。

  • 交流和讨论。学习算法的过程中,可以多与其他人交流和讨论,分享自己的思路和代码,借鉴其他人的经验和方法,这样可以加深自己的理解,同时也可以拓展自己的视野。

总之,学习算法需要持之以恒、耐心和毅力,需要不断的练习、总结和思考,相信只要下足功夫,就能够掌握算法的精髓。

算法分析

  • 如何分析算法
  • 如何理解渐进记号

算法基本思想

  • 分治算法
  • 贪心算法
  • 动态规划
  • 回溯算法
  • 枚举算法

算法

  • 排序

    • 插入排序
    • 归并排序
    • 堆排序
    • 快速排序
    • 冒泡排序
    • 选择排序
    • 计数排序
    • 基数排序
    • 桶排序
    • 线性时间选择排序
  • 搜索

    • 深度优先搜索
    • 广度优先搜索
    • A*启发式搜索
  • 查找

    • 线性表查找
    • 树结构查找
    • 散列表查找
    • 字符串匹配
    • 扑素
    • KMP
    • Robin-Karp
    • Boyer-Moore
    • AC自动机
    • Trie
    • 后缀数组

数据结构

  • 线性表

    • 数组
    • 字符串基础
    • 链表
    • 队列
    • 散列表(哈希表)
    • 二叉树
    • 完全二叉树
    • 满二叉树
    • 平衡二叉树
    • 二叉查找树
    • 平衡二叉查找树
    • 多路查找树
      • B树
      • B+树
      • 2-3树
      • 2-3-4树
      • 大顶堆
      • 小顶堆
      • 优先级队列
      • 斐波那契堆
      • 二项堆
    • 图的存储
      • 邻接矩阵
      • 邻接表
    • 拓扑排序
    • 最短路径
    • 关键路径
    • 最小生成树
    • 二分图
    • 最大流
上次编辑于:
贡献者: biezhihua